cocos2d-x中CCEditbox导出到lua

自从工作后感觉时间较少(每天工作9-22,晚上就不想动了,早上想多睡点),工作中用的是

cocos2d-x。cocos2d-x是一款手机游戏引擎,虽然支持lua,但和love2d相比非纯lua游戏引

擎,不过很容易把C++里的类导出到lua。(虽然cocos2d-x比love2d更流行,工具和教程更

多,我还是会继续更新love2d相关的,因为特别喜欢love2d的小巧。)

cocos2d-x集成了tolua++,tolua++是一款把C++类导出到lua的工具。该工具使用的一般

流程是:

1、制作pkg文件,pkg文件就是你需要要导出的函数和类,基本和头文件一致

2、使用tolua++.exe 从pkg文件生成其对应的C/C++源文件,如tolua++-o test.c test.pkg

3、把生成的源文件加入工程,并在链接里加入lua和tolua++的库

其实tolua++就是自动帮我们完成了C/C++到lua的绑定,之后我们就可以在lua里调用C/C++

里的函数。

在cocos2d-x里就比较方便了,只需要在“tools\tolua++”,里添加你要导出的类的pkg,

同时在Cosos2d.pkg里包含你自己的pkg,即$pfile "test.pkg",还有在LuaCocos2d.h里添加

这个类对应的头文件,即#include "test.h",最后运行 build.bat。

注意一下类的继承,如果你导出的类是A的子类,那么也要把A类导出

下面是CCEditBox导出到lua的pkg,CCEditBox涉及到了多个类所以较长。

CCScale9Sprite.pkg,先要导出CCScale9Sprite

CCEditBox继承的几个类我全放到CCEditBox.pkg里了

 

 

posted @ 2013-07-23 07:48  半山th  阅读(731)  评论(0编辑  收藏  举报