我正在尝试编写一种使用Lua作为脚本语言的引擎。这给了我标题上的错误。
#define el Engine::lua
int vecCreate(lua_State* vm) {
int argc = el.argc();
el.createTable();
if (argc == 0) {
el.tableAddd("x", 0.0);
el.tableAddd("y", 0.0);
} else if (argc == 2) {
el.tableAddd("x", el.argd());
el.tableAddd("y", el.argd());
}
return 1;
}
void Lua::createTable() {
lua_createtable(vm, 2, 0);
}
void Lua::tableAddd(string key, double val) {
lua_pushstring(vm, key.c_str());
lua_pushnumber(vm, val);
lua_settable(vm, -3);
}
double Lua::argd() {
double res = lua_tonumber(vm, 1);
lua_pop(vm, 1);
return res;
}我做错了吗?整个剧本是
function draw()
drawColor(100, 100, 100)
drawPoly(vecNew(10, 10), vecNew(10, 100), vecNew(100, 100), vecNew(100, 10))
end是的,我确信问题在抽签函数中。
发布于 2014-02-04 17:38:40
不过,在获得参数之前,我刚刚在vecCreate中的堆栈上按了一个表
https://stackoverflow.com/questions/21559040
复制相似问题