From 9474767c68c48eff2618df80433b0b81ebf529c6 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 20 Nov 2018 21:43:01 +0800 Subject: =?UTF-8?q?*=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lua/modules/graphics/je_lua_spritesheet.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/lua/modules/graphics/je_lua_spritesheet.cpp') 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& shrSSheet = pxySSheet->getShared(); SpriteSheet* sheet = pxySSheet->getObject(); 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(o); + spr = sheet->createSprite(quad, origin); + } Proxy* pxySprite = luax_newinstance(L, Jin_Lua_Sprite); Shared* shrSprite = new Shared(spr, Jin_Lua_Sprite); shrSprite->setDependency((int)SpriteDependency::DEP_SPRITESHEET, &shrSSheet); -- cgit v1.1-26-g67d0