初次接触lua和quick-cocos2d-x,想要用用cocosWidget,然后就碰到C++到lua的绑定问题了。
看了下网上的教程,http://cn.cocos2d-x.org/tutorial/show?id=513
由于时间紧迫,没去看官方的文档和基本原理,就按上面的流程走。
说说流程和问题。
进入路径:quick\lib\extra\luabinding,找到cocos2dx_extra_luabinding.tolua,里面都有extra的一些c++类,
只要参考那些类来写就没问题。
结果好像没问题,在代码里敲入,cc.MySprite:createMS("xxx.png"),然后addChild
问题就来了,addChild老是报错,参数不对。输出创建的类MySprite,是userdata。
这问题纠结了好久,终于发现cocos2dx_extra_luabinding.tolua里面的HttpRequest类继承的写法是:cc.Ref!
OK,我也把我的自定义类继承写法从:cocos2d::Sprite改成:cc.Sprite
重新编译,跑起来,终于没问题,模拟器上能正常显示被加上的图片。
其实只是高兴了一下,问题又来了!
自定义的C++类创建并加入layer里面后,虽然能看到它了,但即刻跟着报了一个中断错误:Assert: Node still marked as running on node destruction! Was base class onExit() called in derived
网上的做法是去掉onExit(),这里不多说了,还是花点时间去研究cocos2d-x lua 的绑定吧。