cocos2dx之Lua调用C++

原创 2015年11月17日 16:36:22

现在cocos2dx3.8自己封装了以前的toLua++,比以前更好用了。

先来看一下整体步骤:

1.编写一个.ini文件。 2,修改genbindings.py脚本。 3,执行genbindings.py脚本。 4,将生成的桥接文件加入工程。5,修改lua_module_register.h。6,Lua中的使用

原文地址:http://blog.csdn.net/dingkun520wy/article/details/49839717

1、编写自己的ini文件

cocos2d-x-3.8.1/tools/tolua目录下能看到genbindings.py脚本和一大堆.ini文件,这些就是bindings-generator的实际执行环境了。随便找一个内容比较少的.ini文件,复制一份,重新命名为BaseLuaCpp.ini。大部分内容都可以凑合不需要改,这里仅列出必须要改的重要部分:



特别注意:

    如果.ini配置文件中存在macro_judgement = ...宏定义,要特别小心,我第一次是从cocos2dx_controller.ini文件复制来的,结果没注意macro_judgement,导致生成的桥接类文件加入了不该加入的宏,只在iOSAndroid平台上才起作用,对Mac平台无效,这个要特别注意。

2、修改genbindings.py文件

文件路径:cocos2d-x-3.8.1/tools/tolua/genbindings.py

修改genbindings.py文件,BaseLuaCpp.ini文件加进去:

全局搜索“cmd_args = {” 找到要添加的位置



3、编译genbindings.py

在Mac系统上要先安装Python的yaml、Cheetah包

打开终端

执行:sudo easy_install pip

安装yaml

执行:sudo easy_install  pyyaml

执行:sudo python -m easy_install pyyaml

执行:sudo easy_install  pyyaml

安装Cheetah

先下载cheetah: http://pythonhosted.org//Cheetah/ 或 http://download.csdn.net/detail/dingkun520wy/9277269

进入目录执行  sudo python setup.py install

安装完成后

cd到/Users/kuna/Documents/cocos2d-x-3.8.1/tools/tolua目录下

执行:python genbindings.py


4将生成的桥接文件加入工程

成功执行genbindings.py脚本后,

会在/Users/kuna/Documents/cocos2d-x-3.8.1/tools/tolua目录下看到新生成的文件:


将文件复制到自己的工程下,并加入工程



5、修改lua_module_register.h文件 



6Lua中的使用

--调用C++函数
function LuatoCpptest()
    base.BaseUtil:LuatoCPPTest()
end

cocos2dx-lua调用c++

Cocos2d-x下Lua调用自定义C++类和函数的最佳实践 推荐 1 推荐 收藏 22 收藏,15.5k 浏览 关于cocos2d-x下Lua调...
  • u012668054
  • u012668054
  • 2015年09月15日 11:32
  • 1182

Cocos2d-x下Lua调用自定义C++类和函数的最佳实践

有人对Cocos2d-x Lua调用C++,C++调用Lua仍然一知半解,不能一窥全貌。为什么要用tolua++,为什么要用bindings-generator。 详细全面透彻有力的一篇文章多谢洪亮...
  • LightUpHeaven
  • LightUpHeaven
  • 2015年01月15日 19:11
  • 1692

cocos2dx lua 热更新

cocos2dx lua 热更新 最近研究cocos2dx +
  • cloud95
  • cloud95
  • 2014年07月23日 15:58
  • 18177

cocos2dx+Lua 脚本开发一

在Lua中,用 “- - ”来标记该行的注释,使用“- - [ [” 和   “ - - ] ] ”之间括起来的部分进行块注释。如下所示: [plain] view plainc...
  • oQiXiLaoTou
  • oQiXiLaoTou
  • 2014年08月18日 10:24
  • 3691

cocos2dx-lua编程之c++与lua通信,c++与java通信

1. MessageCenter.h #ifndef __MESSAGECENTER_H__ #define __MESSAGECENTER_H__ #include #include stru...
  • zwcwu31
  • zwcwu31
  • 2016年02月29日 13:13
  • 1135

cocos2dx_lua使用c++

  • 2014年09月23日 11:38
  • 307KB
  • 下载

cocos2dx lua 热更新

cocos2dx lua 热更新 最近研究cocos2dx + lua 实现游戏的热更新。基本原理:比如我有一个GameScene,显示"hello world",现在热更新,更新之后显示"hell...
  • yixiao3660
  • yixiao3660
  • 2016年10月14日 16:18
  • 713

【步兵 cocos2dx】错误捕获和崩溃拦截

【步兵 cocos2dx】错误捕获和崩溃拦截 By EOS.周六又是一个加班日,周日一天感觉洗洗衣服、做做饭、打扫下卫生。。就过去了, 明天又要上班了,疲惫状态完全没有恢复过来,反而感觉更累了= =...
  • id___E_O_S___
  • id___E_O_S___
  • 2017年07月02日 23:25
  • 1549

cocos2dx关于在c/c++中调用lua函数

关于在c/c++中调用lua函数
  • u013174689
  • u013174689
  • 2014年12月05日 21:00
  • 1447

cocos2dx之C++调用Lua

一.c++调用Lua 1.引入头文件 #include "cocos2d.h" #include "CCLuaEngine.h" USING_NS_CC; using namespace std; e...
  • dingkun520wy
  • dingkun520wy
  • 2015年11月17日 11:19
  • 5493
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2dx之Lua调用C++
举报原因:
原因补充:

(最多只允许输入30个字)