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/lua/modules/graphics/je_lua_spritesheet.cpp | |
parent | 5bd4477d4cf413e90a6b9ef5c8991798a687a0ec (diff) |
*动画
Diffstat (limited to 'src/lua/modules/graphics/je_lua_spritesheet.cpp')
-rw-r--r-- | src/lua/modules/graphics/je_lua_spritesheet.cpp | 23 |
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); |