cocos2d-x 3.17.2 tolua c++导出lua详细步骤

在使用tolua导出c++类的过程中遇到了很多坑,现在详细记录下来,免得在采坑。

cocos前期准备:

  • windows10系统
  • 下载coco2dx源码,我下载的是3.17.2,这个在官网下载即可。配置cocos环境,此步骤后检查cocos环境变量是否已经配置好,包括:COCOS_CONSOLE_ROOT,COCOS_TEMPLATES_ROOT,COCOS_X_ROOT
  • 使用cocos命令创建lua项目,这个网上有很多指导,此处不说明。我的创建的项目名是cocos-lua-pro01。
  • 编写c++类,类文件名是ManagerMainExport.h,我的是如下示例:
class ManagerSubExport 
{
public:
	static ManagerSubExport* create();
 
	//获取并解析启动运行参数
	static std::string getStartUpJsonParams();
 
	//连接ip和port
	virtual bool startTcp(char* ip, int port) { return false; };
 
	//停止并释放tcp
	virtual bool stopTcp() { return false; };
 
	//发送data到sock
	virtual bool sendMsgToMain(char* data, int len) { return false; };
 
	//注册lua回调,接收缓存中有数据时会调用回调
	virtual void registerLuaCallback(int recvFun, int exitFun) {};
 
	virtual void setUId(int uId) {};
 
	virtual void retainInstance() {};
 
	virtual void releaseInstance() {};
};

正式开始tolua使用:

tolua环境准备:

  • 打开项目cocos-lua-pro01\frameworks\cocos2d-x\tools\tolua\README.mdown文档:

我的是在windows10下,因此参考On Windows栏说明,总结上述文档的说明,依次需要安装一下环境:

  1. 下载安装android-ndk-r16,官网下载:不受支持的 NDK 下载  |  Android NDK  |  Android Developers,选择windows 32位的。创建并配置环境变量NDK_ROOT,值D:\NDK\android-ndk-r16b-windows-x86\android-ndk-r16b
  2. 下载并安装Python2.7.3,直接访问文档中的地址下载。安装完成后,需要将Python的路径添加到系统环境变量PATH中。
  3. 安装Python的pip包,Python2.7需要另外安装pip,参考Python2.7.2 安装pip记录_python2.7安装pip 9版本-CSDN博客完成安装,将C:\Python27\Scripts添加到环境变量PATH。
  4. 下载安装pyyaml,访问文档中路径直接下载,默认安装即可。
  5. 下载Cheetah,访问文档路径下载,解压,打开cmd,进入解压目录Cheetah-2.4.4\Cheetah-2.4.4,依次执行命令‘python setup.py build` 和 'python setup.py install'。成功后,使用会出现警告:“You don't have the C version of NameMapper installed!”,参考Cheetah使用出错!You don't have the C version of NameMapper installed!_the version of c&c 3 tiberium wars you have instal-CSDN博客文档得以解决:访问Cheetah3 · PyPI下载Cheetah3-3.2.4-cp27-cp27m-win32.whl,打开cmd使用命令“pip install Cheetah3-3.2.4-cp27-cp27m-win32.whl”完成安装后,不会再出现警告。

开始使用tolua编译导出c++类:

  1. 进入项目tulua路径:E:\work\cocos-lua-pro01\frameworks\cocos2d-x\tools\tolua,复制备份cocos2dx.ini和genbindings.py,重命名MutiWinManager.ini和genbindings_myclass.py(名字可随便取)。

打开ini进行编辑:下图4处红色方框的内容需要修改,其余不变,

第1、2处和ini文件名相同,文件名也可和c++类名相同,第3处填写需要导出的c++类文档路径,多个文件用空格隔开,第4处填写需要导出的类名(有时候文件名和类名不同),之后导出第4处的类,多个类用空格隔开。

 打开py文件编辑:下图重要的2处红色方框内的内容比较重要,第1处是导出成功后生成的h和cpp文件存放的路径,我没有修改它,第2处需要修改,改成自己的ini文件名,我的是MutiWinManager.ini,后面括号中的内容,前面的是ini文件上图第1处的值(必须与上面第1处值相同),后面是生成的h和cpp文件名(可修改)。

        2. 编辑完成后,打开cmd,进入ini目录:E:\work\cocos-lua-pro01\frameworks\cocos2d-x\tools\tolua,执行命令“python genbindings_myclass.py”(根据你自己重命名的py调整命令)。成功后即在上图第1处的路径下生成对应的h和cpp文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值