From 07022c42a925d4d0c23ab31f0e75883766ce773a Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 21 Nov 2018 21:12:42 +0800 Subject: =?UTF-8?q?*=E5=8A=A8=E7=94=BB=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/graphics/je_sprite_sheet.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/libjin/graphics/je_sprite_sheet.cpp') diff --git a/src/libjin/graphics/je_sprite_sheet.cpp b/src/libjin/graphics/je_sprite_sheet.cpp index 73d3e81..6129da7 100644 --- a/src/libjin/graphics/je_sprite_sheet.cpp +++ b/src/libjin/graphics/je_sprite_sheet.cpp @@ -18,7 +18,7 @@ namespace JinEngine { } - Sprite* SpriteSheet::createSprite(const Math::Quad& quad, Sprite::Origin origin) + Sprite* SpriteSheet::createSprite(const Math::Quad& quad, Origin origin) { Sprite* spr = new Sprite(mGraphic, quad, origin); return spr; @@ -30,41 +30,49 @@ namespace JinEngine return spr; } - std::vector SpriteSheet::createSprites(uint row, uint colum, uint w, uint h, Sprite::Origin origin) + std::vector SpriteSheet::createSprites(uint count, uint row, uint colum, uint w, uint h, Origin origin, uint offx, uint offy) { vector sprites; + int i = 0; 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.x = (r * colum + c) * w + offx; + quad.y = r * h + offy; quad.w = w; quad.h = h; Sprite* spr = new Sprite(mGraphic, quad, origin); sprites.push_back(spr); + if ((++i) == count) + goto done; } } + done: return sprites; } - vector SpriteSheet::createSprites(uint row, uint colum, uint w, uint h, float ox, float oy) + vector SpriteSheet::createSprites(uint count, uint row, uint colum, uint w, uint h, float ox, float oy, uint offx, uint offy) { vector sprites; + int i = 0; 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.x = (r * colum + c) * w + offx; + quad.y = r * h + offy; quad.w = w; quad.h = h; Sprite* spr = new Sprite(mGraphic, quad, ox, oy); sprites.push_back(spr); + if ((++i) == count) + goto done; } } + done: return sprites; } -- cgit v1.1-26-g67d0