环境准备:
1)下载,安装python2.7.3
1
|
PYTHON_ROOT=C:/Python27
|
3)安装:http://pyyaml.org/download/pyyaml/PyYAML-3.10.win32-py2.7.exe
4)下载并解压到C:\Python27\Lib\site-packages
https://raw.github.com/dumganhar/my_old_cocos2d-x_backup/download/downloads/Cheetah.zip
导出自定义C++:
打开payer,我们新建个工程 例如t1,注意:工程最好不要放在quick-x的目录中,更好的做法是放在某个盘的单独的一个目录下,这样编译andriod时才不会导致目录过长问题。
我的工程为 t1(例如),目录为 E:\AndroidQuickwrok\t1(例如),这时打开E:\AndroidQuickwrok\t1\frameworks\cocos2d-x\tools\tolua ,将附件tolua,解压拷贝到这里。打开E:\AndroidQuickwrok\t1\frameworks\cocos2d-x ,新建个myclass目录,将附件myclass的自定义类拷贝到这里。
注意:
我这样用的是ndk,r9d的版本,在E:\AndroidQuickwrok\t1\frameworks\cocos2d-x\tools\tolua目录下,生成lua接口的配置文件为ini, 里面有android_headers中,在ndk r9b 用的是4.7。
而我们用的却是ndk r9d,偷懒的方法就是将ini文件中的android_headers,有4.7的地方改成4.8。
附件当中,ini有详细的说明。
最后一步
在E:\AndroidQuickwrok\t1\frameworks\cocos2d-x\tools\tolua 打开命令窗口, 输入Python MYgenbindingsm.py
这是我的例子:
生成的接口文件便在E:\AndroidQuickwrok\t1\frameworks\cocos2d-x\myclass 下 , 这里可以看myclass.ini注释
生成成功后,vs打开E:\AndroidQuickwrok\t1\frameworks\runtime-src\proj.win32工程
在AppDelegate.cpp 将我们的lua接口注册好
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include"myclass/lua_myclass_auto.hpp"
static
void
quick_module_register(lua_State*L)
{
luaopen_lua_extensions_more(L);
lua_getglobal(L,
"_G"
);
if
(lua_istable(L,-1))
//stack:...,_G,
{
register_all_quick_manual(L);
//extra
luaopen_cocos2dx_extra_luabinding(L);
register_all_cocos2dx_extension_filter(L);
luaopen_HelperFunc_luabinding(L);
register_all_myclass(L);
#if(CC_TARGET_PLATFORM==CC_PLATFORM_IOS)
luaopen_cocos2dx_extra_ios_iap_luabinding(L);
#endif
}
lua_pop(L,1);
}
|
编译,生成的exe在 E:\AndroidQuickwrok\t1\runtime\win32 目录下
注意: 由于我们是player 新建的项目,而我们没编译player,只编译了exe,所以player 便没有我们导出的接口。
但是,如果我们用Cocos Code IDE 1.0.2(这个版本)新建的quick-x 3.3rc1 的工程,就能使用自己的接口,当然你先要配置项目运行那里,选择编译生成的exe。
但我用不惯Cocos Code IDE 1.0.2,就把player 的工程 ,按照t1的工程编译一次,生成的便是有我们导出的接口的player,目前只能这样,还是比较麻烦的。毕竟要调试自己的C++代码,便要编译两次。
Cocos引擎中文官网现面向广大Cocos引擎相关开发者征集优秀教程,欢迎给位童鞋踊跃投稿!来稿请发送至:support@cocos.org。