diff options
author | chai <chaifix@163.com> | 2018-11-20 21:43:01 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-11-20 21:43:01 +0800 |
commit | 9474767c68c48eff2618df80433b0b81ebf529c6 (patch) | |
tree | ef33099fb7aa63f5c80f52319f6bd8a158ea31c1 /src/libjin/graphics/je_sprite_sheet.cpp | |
parent | 5bd4477d4cf413e90a6b9ef5c8991798a687a0ec (diff) |
*动画
Diffstat (limited to 'src/libjin/graphics/je_sprite_sheet.cpp')
-rw-r--r-- | src/libjin/graphics/je_sprite_sheet.cpp | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/src/libjin/graphics/je_sprite_sheet.cpp b/src/libjin/graphics/je_sprite_sheet.cpp index 936eeab..73d3e81 100644 --- a/src/libjin/graphics/je_sprite_sheet.cpp +++ b/src/libjin/graphics/je_sprite_sheet.cpp @@ -1,5 +1,13 @@ +#include <vector> + +#include "../math/je_quad.h" + #include "je_sprite_sheet.h" +using namespace std; + +using namespace JinEngine::Math; + namespace JinEngine { namespace Graphics @@ -10,13 +18,54 @@ namespace JinEngine { } - Sprite* SpriteSheet::createSprite(const Math::Quad& quad) + Sprite* SpriteSheet::createSprite(const Math::Quad& quad, Sprite::Origin origin) + { + Sprite* spr = new Sprite(mGraphic, quad, origin); + return spr; + } + + Sprite* SpriteSheet::createSprite(const Math::Quad& quad, float ox, float oy) + { + Sprite* spr = new Sprite(mGraphic, quad, ox, oy); + return spr; + } + + std::vector<Sprite*> SpriteSheet::createSprites(uint row, uint colum, uint w, uint h, Sprite::Origin origin) + { + vector<Sprite*> sprites; + for (int r = 0; r < row; ++r) + { + for (int c = 0; c < colum; ++c) + { + Quad quad; + quad.x = (r * colum + c) * w; + quad.y = r * h; + quad.w = w; + quad.h = h; + Sprite* spr = new Sprite(mGraphic, quad, origin); + sprites.push_back(spr); + } + } + return sprites; + } + + vector<Sprite*> SpriteSheet::createSprites(uint row, uint colum, uint w, uint h, float ox, float oy) { - //Sprite* spr = new Sprite(); - //spr->setGraphic(mGraphic); - //spr->setQuad(quad.x, quad.y, quad.w, quad.h); - //return spr; - return nullptr; + vector<Sprite*> sprites; + for (int r = 0; r < row; ++r) + { + for (int c = 0; c < colum; ++c) + { + Quad quad; + quad.x = (r * colum + c) * w; + quad.y = r * h; + quad.w = w; + quad.h = h; + Sprite* spr = new Sprite(mGraphic, quad, ox, oy); + sprites.push_back(spr); + } + } + return sprites; } } |