aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/graphics/je_lua_spritesheet.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-11-20 21:43:01 +0800
committerchai <chaifix@163.com>2018-11-20 21:43:01 +0800
commit9474767c68c48eff2618df80433b0b81ebf529c6 (patch)
treeef33099fb7aa63f5c80f52319f6bd8a158ea31c1 /src/lua/modules/graphics/je_lua_spritesheet.cpp
parent5bd4477d4cf413e90a6b9ef5c8991798a687a0ec (diff)
*动画
Diffstat (limited to 'src/lua/modules/graphics/je_lua_spritesheet.cpp')
-rw-r--r--src/lua/modules/graphics/je_lua_spritesheet.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/lua/modules/graphics/je_lua_spritesheet.cpp b/src/lua/modules/graphics/je_lua_spritesheet.cpp
index 15469e9..a1652e0 100644
--- a/src/lua/modules/graphics/je_lua_spritesheet.cpp
+++ b/src/lua/modules/graphics/je_lua_spritesheet.cpp
@@ -28,11 +28,24 @@ namespace JinEngine
Shared<SpriteSheet>& shrSSheet = pxySSheet->getShared<SpriteSheet>();
SpriteSheet* sheet = pxySSheet->getObject<SpriteSheet>();
Quad quad;
- quad.x = luax_checkinteger(L, 2);
- quad.y = luax_checkinteger(L, 3);
- quad.w = luax_checkinteger(L, 4);
- quad.h = luax_checkinteger(L, 5);
- Sprite* spr = sheet->createSprite(quad);
+ quad.x = luax_rawgetnumberthenpop(L, 2, 1);
+ quad.y = luax_rawgetnumberthenpop(L, 2, 2);
+ quad.w = luax_rawgetnumberthenpop(L, 2, 3);
+ quad.h = luax_rawgetnumberthenpop(L, 2, 4);
+ Sprite* spr = nullptr;
+ if (luax_gettop(L) >= 4)
+ {
+ float ox = luax_checknumber(L, 3);
+ float oy = luax_checknumber(L, 4);
+ spr = sheet->createSprite(quad, ox, oy);
+ }
+ else if (luax_gettop(L) == 3)
+ {
+ int o = luax_checkinteger(L, 3);
+ Sprite::Origin origin;
+ origin = static_cast<Sprite::Origin>(o);
+ spr = sheet->createSprite(quad, origin);
+ }
Proxy* pxySprite = luax_newinstance(L, Jin_Lua_Sprite);
Shared<Sprite>* shrSprite = new Shared<Sprite>(spr, Jin_Lua_Sprite);
shrSprite->setDependency((int)SpriteDependency::DEP_SPRITESHEET, &shrSSheet);