quick-x v3.3rc1 快速自定义类导出lua ,用ndk r9d

来源:互联网 发布:ftp需要开放的端口 编辑:程序博客网 时间:2024/05/17 21:57
环境准备:
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++代码,便要编译两次。


http://www.cocoachina.com/bbs/read.php?tid-273349-keyword-%D7%D4%B6%A8%D2%E5%C0%E0.html

0 0
原创粉丝点击