aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/graphics/je_lua_sprite.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-11-14 21:21:54 +0800
committerchai <chaifix@163.com>2018-11-14 21:21:54 +0800
commit611d12bdd245dd43b7434661d3e24f2b435378cb (patch)
tree976904a325695f76680934c0d917ee664e1529d5 /src/lua/modules/graphics/je_lua_sprite.cpp
parent84aea028f9955c9313fa14b62d39a3e8e80b84b7 (diff)
*更新渲染模块
Diffstat (limited to 'src/lua/modules/graphics/je_lua_sprite.cpp')
-rw-r--r--src/lua/modules/graphics/je_lua_sprite.cpp45
1 files changed, 34 insertions, 11 deletions
diff --git a/src/lua/modules/graphics/je_lua_sprite.cpp b/src/lua/modules/graphics/je_lua_sprite.cpp
index af1ac60..511f877 100644
--- a/src/lua/modules/graphics/je_lua_sprite.cpp
+++ b/src/lua/modules/graphics/je_lua_sprite.cpp
@@ -2,6 +2,7 @@
#include "lua/modules/types.h"
#include "lua/common/je_lua_common.h"
#include "libjin/jin.h"
+#include "je_lua_sprite.h"
using namespace JinEngine::Graphics;
using namespace JinEngine::Graphics::Shaders;
@@ -11,13 +12,6 @@ namespace JinEngine
namespace Lua
{
- // Sprite dependency slots.
- enum SpriteDependency
- {
- DEP_GRAPHIC = 1,
- DEP_SHADER = 2,
- };
-
typedef Shared<Sprite>& SharedSprite;
LUA_IMPLEMENT inline SharedSprite checkSprite(lua_State* L)
@@ -66,8 +60,8 @@ namespace JinEngine
LUA_IMPLEMENT int l_setPosition(lua_State* L)
{
SharedSprite sprite = checkSprite(L);
- int x = luax_checkinteger(L, 2);
- int y = luax_checkinteger(L, 3);
+ float x = luax_checknumber(L, 2);
+ float y = luax_checknumber(L, 3);
sprite->setPosition(x, y);
return 0;
}
@@ -98,7 +92,7 @@ namespace JinEngine
Proxy* proxy = (Proxy*)luax_checktype(L, 2, JIN_GRAPHICS_SHADER);
Shader* shader = proxy->getObject<Shader>();
sprite->setShader(shader);
- sprite.setDependency(SpriteDependency::DEP_SHADER, &proxy->getShared<Shader>());
+ sprite.setDependency((int)SpriteDependency::DEP_SHADER, &proxy->getShared<Shader>());
return 0;
}
@@ -114,11 +108,37 @@ namespace JinEngine
if (p != nullptr)
{
sprite->setGraphic(p->getObject<Graphic>());
- sprite.setDependency(SpriteDependency::DEP_GRAPHIC, &p->getShared<Graphic>());
+ sprite.setDependency((int)SpriteDependency::DEP_GRAPHIC, &p->getShared<Graphic>());
}
return 0;
}
+ LUA_IMPLEMENT int l_move(lua_State* L)
+ {
+ SharedSprite sprite = checkSprite(L);
+ float x = luax_checknumber(L, 2);
+ float y = luax_checknumber(L, 3);
+ sprite->move(x, y);
+ return 0;
+ }
+
+ LUA_IMPLEMENT int l_scale(lua_State* L)
+ {
+ SharedSprite sprite = checkSprite(L);
+ float sx = luax_checknumber(L, 2);
+ float sy = luax_checknumber(L, 3);
+ sprite->scale(sx, sy);
+ return 0;
+ }
+
+ LUA_IMPLEMENT int l_rotate(lua_State* L)
+ {
+ SharedSprite sprite = checkSprite(L);
+ float r = luax_checknumber(L, 2);
+ sprite->rotate(r);
+ return 0;
+ }
+
LUA_IMPLEMENT int l_getRotation(lua_State* L)
{
SharedSprite sprite = checkSprite(L);
@@ -184,6 +204,9 @@ namespace JinEngine
{ "setColor", l_setColor },
{ "setShader", l_setShader },
{ "setGraphic", l_setGraphic },
+ { "move", l_move },
+ { "scale", l_scale },
+ { "rotate", l_rotate },
{ "getRotation", l_getRotation },
{ "getPosition", l_getPosition },
{ "getOrigin", l_getOrigin },