<html>
2017-08-18 13:50 tlnshuju 阅读(187) 评论(0) 编辑 收藏 举报1:依照\frameworks\cocos2d-x\tools\tolua下的README.mdown的指示一步一步做下去。务必要和文件里描写叙述的一样,我已经被这个坑爹的东西坑的非常慘了。(检查这个有没有配置好的方法是:执行下那个genbindings.py,看能否生成liblua的auto文件夹下的那些文件。假设能。那么你的环境配置就成功了。)
2:写一个自己定义的C++类
样例:
<span style="font-family:KaiTi_GB2312;font-size:14px;">#pragma once #include "cocos2d.h" USING_NS_CC; class MyClass : public Ref { public: MyClass(void); ~MyClass(void); bool init() { return true; }; CREATE_FUNC(MyClass); int foo(int i); }; </span>
<span style="font-family:KaiTi_GB2312;font-size:14px;">#include "MyClass.h" MyClass::MyClass(void) { } MyClass::~MyClass(void) { } int MyClass::foo(int i) { return i + 100; } </span>
3:在\frameworks\cocos2d-x\tools\tolua文件夹下 能够看到非常多.ini文件和一个genbindings.python文件。
随便拷贝一个.ini文件,我重命名:myclass.ini。复制一份python文件,重命名为:mygenbindings.python。
改动两个配置文件:
python文件须要做的改动:
<span style="font-family:KaiTi_GB2312;font-size:14px;"> cmd_args = {'cocos2dx.ini' : ('cocos2d-x', 'lua_cocos2dx_auto'), \ 'cocos2dx_extension.ini' : ('cocos2dx_extension', 'lua_cocos2dx_extension_auto'), \ 'cocos2dx_ui.ini' : ('cocos2dx_ui', 'lua_cocos2dx_ui_auto'), \ 'cocos2dx_studio.ini' : ('cocos2dx_studio', 'lua_cocos2dx_studio_auto'), \ 'cocos2dx_spine.ini' : ('cocos2dx_spine', 'lua_cocos2dx_spine_auto'), \ 'cocos2dx_physics.ini' : ('cocos2dx_physics', 'lua_cocos2dx_physics_auto'), \ 'cocos2dx_experimental_video.ini' : ('cocos2dx_experimental_video', 'lua_cocos2dx_experimental_video_auto'), \ 'cocos2dx_experimental.ini' : ('cocos2dx_experimental', 'lua_cocos2dx_experimental_auto'), \ 'cocos2dx_controller.ini' : ('cocos2dx_controller', 'lua_cocos2dx_controller_auto'), \ }</span>
变成:
<span style="font-family:KaiTi_GB2312;font-size:14px;">cmd_args = { 'myclass.ini' : ('myclass', 'lua_myclass_auto'), \ }</span>
改动myclass.ini文件:
[myclass](非常重要。要和文件名称一样。
我被这个坑了非常久)。这个是第一行
prefix = myclass
target_namespace = (我的没有命名空间)
headers = %(cocosdir)s/../runtime-src/Classes/MyClass.h(这是我的类路径,和AppDelegate在一起。依据你自己的路径配置吧)
classes = MyClass
后面的skip = ,rename_functions = 等等都变成空的。
这样就能够生成lua和cocos中间文件了。就像lua_cocos2dx_auto.cpp和hpp那样。因为我们在python文件里没有改变中间文件的生成路径,所以应该和lua_cocosdx_auto在同一个文件夹下。
将我们自己定义的类进行注冊,在AppDelegate.cpp文件里增加一下代码:
<span style="font-family:KaiTi_GB2312;font-size:14px;">auto engine = LuaEngine::getInstance(); register_all_myclass(engine->getLuaStack()->getLuaState());//在这里增加这行代码</span>这样就对我们的自己定义类进行了注冊。
对项目进行编译。发现会报错:
<pre name="code" class="html"><span style="font-family:KaiTi_GB2312;font-size:14px;">"int __cdecl register_all_myclass(struct lua_State *)" (?register_all_myclass@@YAHPAUlua_State@@@Z),该符号在函数 "public: virtual bool __thiscall AppDelegate::applicationDidFinishLaunching(void)" (?applicationDidFinishLaunching@AppDelegate@@UAE_NXZ) 中被引用</span>
解决的方法:将刚才生成的两个文件增加到liblua项目中去,又一次生成liblua项目。搞定啦!!
4:在lua代码中调用我们的类吧。
在hello2.lua 的main()中增加:
<span style="font-family:KaiTi_GB2312;font-size:14px;">local test = MyClass:create() print("the first cocos bind lua result "..test:foo(2))</span>
发现输出了我们要的答案。
这样就完毕了cocos自己定义类绑定到lua中了。
- 本文已收录于下面专栏:
相关文章推荐
-
【Cocos2d-x】绑定C++自己定义类到Lua
使用tolua++工具在Lua中使用C++自己定义类- linchaolong
- 2014-07-14 03:08
- 2029
-
【木头Cocos2d-x 008】在Lua中使用自己定义类——tolua++工具使用(下集)
在Lua中使用自己定义类——tolua++工具使用(下集) 笨木头花心贡献,啥?花心?不呢,是用心~转载请注明,原文地- mmdev
- 2012-11-09 15:25
- 373
-
【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之二】新建项目中配制环境
在《【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之中的一个】环境搭建》中,为何最后一步是在Quick引擎中去完毕绑定C++至Lua的脚本呢?- marpool
- 2015-03-13 09:59
- 1897
-
《Cocos2d-x实战 Lua卷》上线了
感谢大家一直以来的支持!<img style="border-style: none; max-width: 100%; color: #333333; font-family:- 关东升
- 2015-03-26 20:56
- 151
-
Cocos绑定Lua自己定义类——Mac
cocos绑定Lua,Mac平台- mydad353193052
- 2015-09-25 14:12
- 339
-
cocos2dx + lua
原文链接(http://blog.csdn.net/feng283797821/article/details/9815849) 编辑器用sublime text 2 调试用decoda 弄这个sublimetext 2的lua环境和绑定cocos2d-x花了几天时间,郁闷的非常。。。
记录一下吧,也希望跟我一样的新手别走弯路,浪费时间 1,sublime text 2简单介绍 一款收费的文本编辑软件,如今我用的是破解版的2.0.2。。。其他的自行度娘 2。搭建lua编译环境 Sublime text 2支持lu
- fbzz88
- 2014-08-01 11:36
- 126
-
quick-3.5 绑定自己定义C++类到Lua并使用cocos code ide 调式
quick-3.5 配置cocos ide 1.2.0断点调试请点击 在这里主要记录怎么绑定自己定义C++类到Lua 參考文章在这里【绑定自己定义类至Lua】。在我操作过程中略有不同,如今把步骤记录下...- xue_huashan
- 2015-09-14 17:39
- 434
-
我所理解的Cocos2d-x
我所理解的<span style="font-size: 18pt; font-family: 'Times New Roman','- 博文视点Broadview
- 2014-11-21 15:27
- 253
-
cocos2dx 2.x版本号:简化提炼tolua++绑定自己定义类到lua中使用
cocos2dx的3.x版本号已经提供了更好地绑定方式,网上有非常多相关的教程,这里给一个链接:http://www.cocoachina.com/bbs/read.php?tid=196416。 ...- gl5773477
- 2015-01-21 19:25
- 817
-
【木头Cocos2d-x 007】在Lua中使用自己定义类——tolua++工具使用(上集)
在Lua中使用自己定义类——tolua++工具使用(上集) <span style=- mmdev
- 2012-11-09 15:14
- 425
0条评论