在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
cocos2d-x在2.x版本里就是用toLua++和.pkg文件这么把自己注册进Lua环境里的,然而从cocos2d-x 3.x开始,用bindings-generator脚本代替了toLua++。 1、不用编写.pkg和.h文件了,直接定义一个ini文件,注册到Lua环境里的模块名是什么,就行了。 2、摸清了toLua++工具的生成方法,改由Python脚本动态分析C++类,自动生成桥接的.h和.cpp代码,不调用tolua++命令了 3、虽然不再调用tolua++命令了,但是底层仍然使用toLua++的库函数,比如tolua_function,bindings-generator脚本生成的代码就跟使用toLua++工具生成的几乎一样 接下来说怎么用bindings-generator脚本: 1、写自己的C++类,按照cocos2d-x的规矩,继承cocos2d::Ref类,以便使用cocos2d-x的内存回收机制。 2、编写一个.ini文件,让bindings-generator可以根据这个配置文件知道C++类该怎么暴露出来 3、修改bindings-generator脚本,让它去读取这个.ini文件 4、执行bindings-generator脚本,生成桥接C++类方法 5、用VS2012将自定义的C++类和生成的桥接文件加入工程,不然编译不到 6、修改AppDelegate.cpp,执行桥接方法,自定义的C++类就注册进Lua环境里了。 首先是自定义的C++类。我习惯将文件保存在frameworks/runtime-src/Classes/目录下: frameworks/runtime-src/Classes/MyClass.h
frameworks/cocos2d-x/tools/tolua/MyClass.ini
至此,生成桥接文件的准备工作就做好了,执行genbindings.py脚本:
简单解释下编译成后lua_MyClass_auto.cpp
2.编译运行 打开Classes/lua_module_register.h文件,添加头文件
lua代码:
引用博客:http://segmentfault.com/a/1190000000631630 引用文章:http://cn.cocos2d-x.org/tutorial/show?id=2496 转载地址: http://blog.csdn.net/my183100521/article/details/46553239
cocos2d-x在2.x版本里就是用toLua++和.pkg文件这么把自己注册进Lua环境里的,然而从cocos2d-x 3.x开始,用bindings-generator脚本代替了toLua++。 1、不用编写.pkg和.h文件了,直接定义一个ini文件,注册到Lua环境里的模块名是什么,就行了。 2、摸清了toLua++工具的生成方法,改由Python脚本动态分析C++类,自动生成桥接的.h和.cpp代码,不调用tolua++命令了 3、虽然不再调用tolua++命令了,但是底层仍然使用toLua++的库函数,比如tolua_function,bindings-generator脚本生成的代码就跟使用toLua++工具生成的几乎一样 接下来说怎么用bindings-generator脚本: 1、写自己的C++类,按照cocos2d-x的规矩,继承cocos2d::Ref类,以便使用cocos2d-x的内存回收机制。 2、编写一个.ini文件,让bindings-generator可以根据这个配置文件知道C++类该怎么暴露出来 3、修改bindings-generator脚本,让它去读取这个.ini文件 4、执行bindings-generator脚本,生成桥接C++类方法 5、用VS2012将自定义的C++类和生成的桥接文件加入工程,不然编译不到 6、修改AppDelegate.cpp,执行桥接方法,自定义的C++类就注册进Lua环境里了。 首先是自定义的C++类。我习惯将文件保存在frameworks/runtime-src/Classes/目录下: frameworks/runtime-src/Classes/MyClass.h
|
请发表评论