环境准备:
1 下载,安装python2.7.3
http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi
2添加python 环境变量,添加到path
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接口注册好
#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);
//添加自定义的lua文件
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 便没有我们导出的接口
但是,如果我们用cocosIDE 1.0.2 (这个版本)新建的quick-x 3.3rc1 的工程,就能使用自己的接口 ,当然你先要配置 项目运行 那里,选择编译生成的exe
但我用不惯cocosIDE 1.0.2 ,就把player 的工程 ,按照t1的工程 编译一次
生成的便是有我们导出的接口 的player
目前只能这样,还是比较麻烦的。
毕竟要调试自己的c++代码,便要编译两次。