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

前端之家收集整理的这篇文章主要介绍了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);
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

原文链接:https://www.f2er.com/cocos2dx/344765.html

猜你在找的Cocos2d-x相关文章