【发布时间】:2012-02-04 17:06:44
【问题描述】:
我发现这篇关于如何将 c++ 类绑定到 lua 的博文:http://loadcode.blogspot.com/2007/02/wrapping-c-classes-in-lua.html
但它并不是开箱即用的。
我已经将函数调整为我自己的,而不是使用 NPC 类而不是 Sprite 类。
我将函数setSpeed 更改为我自己的函数NpcSetPosition(lua_State *L),每次我在lua 中调用以下函数时都会调用它:
local npc = Npc:New()
npc:SetPosition(5,5)
(npc:SetPosition 函数)
现在有趣的是我如何在NpcSetPosition 中调用checkSprite,如果我这样做一次,lua 脚本将运行良好。但是如果我这样做两次(我两次调用npc:SetPosition(5,5)),我会收到以下错误消息:
Lua Compile Error: script.lua:10: bad argument #1-1 to: 'SetPosition' (table expected, got userdata)
这意味着我不能为 npc 设置两次位置,这是废话。 你知道出了什么问题吗? 它与lua堆栈有关吗? 谢谢。
【问题讨论】:
-
“我已经根据自己的情况调整了函数”你能告诉我们调整后的版本吗?
-
我是想让你把它放在你的问题中。