我一直在研究如何将 C++ 类绑定到 Lua 以在游戏引擎中使用,我遇到了一个有趣的问题。我一直在关注这个网站上的教程:http: //tinyurl.com/d8wdmea。在教程之后,我意识到他建议的以下代码:
local badguy = Monster.create();
badguy.pounce = function(self, howhigh, bonus)
self.jumpbonus = bonus or 2;
self:jump(howhigh);
self:rawr();
end
badguy:pounce(5, 1);
只会将 pounce 函数添加到 Monster 的特定实例。所以我将他建议的脚本更改为以下内容:
function Monster:pounce(howhigh, bonus)
print("in pounce function");
print(bonus);
self.jumpbonus = bonus or 2
self:jump(howhigh);
self:rawr();
end
local badguy = Monster.create();
badguy:pounce(5,1);
但是,当我调用 pounce 函数时,脚本会中断。经过进一步测试,我能够成功调用 pounce 函数的唯一方法是将该函数作为 Monster 类的静态成员调用(该函数的代码保持不变):
Monster.pounce(badguy,5,1);
从语法上讲, badguy:pounce(5,1) 是正确的,但没有正确调用该函数。我只是做错了什么,还是这是lua和c ++之间绑定的限制/我如何绑定这两种语言?