diff options
Diffstat (limited to 'src/lua/modules/graphics/je_lua_animation.cpp')
-rw-r--r-- | src/lua/modules/graphics/je_lua_animation.cpp | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/lua/modules/graphics/je_lua_animation.cpp b/src/lua/modules/graphics/je_lua_animation.cpp index 9c4eaeb..d054761 100644 --- a/src/lua/modules/graphics/je_lua_animation.cpp +++ b/src/lua/modules/graphics/je_lua_animation.cpp @@ -85,17 +85,34 @@ namespace JinEngine return 1; } + LUA_IMPLEMENT int l_getFrame(lua_State* L) + { + SharedAnimation shrAnimation = checkAnimation(L); + int i = luax_checkinteger(L, 2); + SharedBase* shrFrame = shrAnimation.getDependency((int)AnimationDependency::DEP_SPRITES + i); + luax_getobject(L, shrFrame); + return 1; + } + + LUA_IMPLEMENT int getFrameCount(lua_State* L) + { + SharedAnimation shrAnimation = checkAnimation(L); + int n = shrAnimation->getFrameCount(); + luax_pushinteger(L, n); + return 1; + } + LUA_EXPORT void luaopen_Animation(lua_State* L) { luaL_Reg methods[] = { - { "__gc", l_gc }, - { "addFrame", l_addFrame }, - { "addFrames", l_addFrames }, - { "isLoop", l_isLoop }, - { "getSpeed", l_getSpeed }, - { "getFrameCount", l_getSpeed }, - //{ "getFrame", l_getFrame }, - { 0, 0 } + { "__gc", l_gc }, + { "addFrame", l_addFrame }, + { "addFrames", l_addFrames }, + { "isLoop", l_isLoop }, + { "getSpeed", l_getSpeed }, + { "getFrameCount", getFrameCount }, + { "getFrame", l_getFrame }, + { 0, 0 } }; luax_newtype(L, Jin_Lua_Animation, methods); } |