IS
Size: a a a
IS
S
IS
IS
S
S
IS
IS
IS
S
IS
IS
IS
[ivan@pc some-test]$ time luajit ./just_some_lua.lua
158028
real 0m5.690s
user 0m5.684s
sys 0m0.000s
[ivan@pc some-test]$ time pypy3 ./just_some_python.py
158028
real 0m0.300s
user 0m0.269s
sys 0m0.017s
[ivan@pc some-test]$ time ./cmake-build-release/some
158028
real 0m0.099s
user 0m0.099s
sys 0m0.001s
IS
IS
IS
S
struct GameObject {
int pos;
int vec;
}
int lua_class_gameobject_new(lua_State *L){
GameObject * o = (GameObject *)luax_newobject(L, "GameObject", sizeof(GameObject));
int x = luaL_checknumber(L, 1);
int y = luaL_checknumber(L, 2);
o.pos = x & (y >> 0xF);
return 1;
}
int lua_class_gameobject_Get(lua_State *L){
GameObject * o = (GameObject *)luaL_checkudata(L, 1, "GameObject");
char field = luaL_checkstring(L, 2)[0];
if (field == 'x') {
lua_pushnumber(L, o.pos & 0xFF);
}
else if (field == 'y') {
lua_pushnumber(L, o.pos << 0xF);
}
return 1;
}
Потом выгружаешь метатабличку и функции создания игровых объектов в луа, прописываешь деструкторы и всякую такую ерунду.IS
S
S