Quick-Cocos2d-x v3.3-RC1快速自定义类导出Lua(用NDK r9d)

环境准备:

1)下载,安装python2.7.3 

2)添加python 环境变量,添加到path

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);
         //添加自定义的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 便没有我们导出的接口。

但是,如果我们用Cocos Code IDE 1.0.2(这个版本)新建的quick-x 3.3rc1 的工程,就能使用自己的接口,当然你先要配置项目运行那里,选择编译生成的exe。

但我用不惯Cocos Code IDE 1.0.2,就把player 的工程 ,按照t1的工程编译一次,生成的便是有我们导出的接口的player,目前只能这样,还是比较麻烦的。毕竟要调试自己的C++代码,便要编译两次。

myclass.rar

tolua.rar


Cocos引擎中文官网现面向广大Cocos引擎相关开发者征集优秀教程,欢迎给位童鞋踊跃投稿!来稿请发送至:support@cocos.org。

来源网址:http://www.cocoachina.com/bbs/read.php?tid-273349.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值