cocos2dx之Lua调用C++
现在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,导致生成的桥接类文件加入了不该加入的宏,只在iOS和Android平台上才起作用,对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文件
6、Lua中的使用
--调用C++函数
function LuatoCpptest()
base.BaseUtil:LuatoCPPTest()
end
cocos2dx之Lua调用C++的更多相关文章
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践[转]
Cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所有的文档都没讲清楚,是因为存在5个层面的知识点: 1.在纯C环境下,把C函数注册进Lua环境,理解Lua和C之间可以互相调用的本质 ...
- 【转】Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
转自:http://segmentfault.com/blog/hongliang/1190000000631630 关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明 ...
- cocos2d-x lua 调用onEnter和onExit
cocos2d-x lua 调用onEnter和onExit version: cocos2d-x 3.6 onEnter和onExit在lua中不会因节点别add和remove而直接被调用,当子节点 ...
- cocos2dx之C++调用Lua
原文地址:http://blog.csdn.net/dingkun520wy/article/details/49839701 1.引入头文件 #include "cocos2d.h&quo ...
- Lua调用自定义C++类
弄了一天终于会Lua调用自定义C++类.不容易啊. 我的电脑是64位的,装了64的Python不行,装了32位的就可以了,靠!下面是报错信息 python pyyaml Cheetah全都是装32位的 ...
- 如何使用ZEROBRANE STUDIO远程调试COCOS2D-X的LUA脚本(转)
http://www.cocos2d-x.org/docs/manual/framework/native/v2/lua/lua-remote-debug-via-zerobrane/zh ZeroB ...
- cocos2d-x - C++/Lua交互
使用tolua++将自定义的C++类嵌入,让lua脚本使用 一般过程: 自定义类 -> 使用tolua++工具编译到LuaCoco2d.cpp中 -> lua调用 步骤一:自定义一个C++ ...
- Lua调用C++时打印堆栈信息
公司的手游项目,使用的是基于cocos2d-x绑lua的解决方案(参数quick-x的绑定),虽然使用了lua进行开发,更新很爽了,但是崩溃依然较为严重,从后台查看崩溃日志时,基本上只能靠" ...
- cocos2d-x绑lua的开发环境
2013年是手游开发井喷的一年,也是手游市场竞争最为激烈的一年,ios市场除了刷榜.刷榜,还是刷榜,而android有点像黑市的感觉,水太深(很多渠道商已经从上游控制了流量的入口).而cocos2d- ...
随机推荐
- 解决浏览器background-image属性不支持css3动画
问题 最近在使用background-image属性来实现css3的逐帧动画时,碰到了个问题.在chrome浏览器上,background-image属性是支持css3动画的,但是到了firefox上 ...
- Oracle_11g中解决被锁定的scott用户的方法(转载)
转自:http://www.2cto.com/database/201402/277206.html Oracle 11g中修改被锁定的用户:scott 在安装完Oracle11g和创建完oracle ...
- Android NDK开发之Android.mk文件
Android NDK开发指南---Android.mk文件 博客分类: Android NDK开发指南 Android.mk文件语法详述 介绍: ------------ 这篇文档是用来描述你的 ...
- [转]Ubuntu中无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
sudo apt-get install git E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/ ...
- C#使用HttpHelper万能框架,重启路由器
首先声明,不是所有路由器都可以通过下面的代码来让路由器执行重启. 下面的代码测试的路由器是(TP-LINK TD-W89841N增强型).要根据自己的路由器来写代码. using CsharpHttp ...
- [算法练习] UVA 10420 - List of Conquests?
UVA Online Judge 题目10420 - List of Conquests 问题描述: 题目很简单,给出一个出席宴会的人员列表,包括国籍和姓名(姓名完全没用).统计每个国家有多少人参加, ...
- 关于ios对rtsp格式的流媒体支持的一些官方说明
ios明确不支持rtsp格式的流媒体,基于rtsp/rtp对通用性和防炎墙以及需要开新端口等额外影响稳定性和通用性的原因. 而对http流的视频支持是最好的.虽然有第三方的方式配合ffmpeg库,实现 ...
- 【转】Android开发中Handler的使用
在Android开发中,我们经常会遇到这样一种情况:在UI界面上进行某项操作后要执行一段很耗时的代码,比如我们在界面上点击了一个”下载“按钮,那么我们需要执行网络请求,这是一个耗时操作,因为不知道什么 ...
- redis学习-day1
1.nosql数据库的一种. 2.Redis 是一种开源的,先进的key-value存储.它通常被称为数据结构服务器.因为键可以包含字符串.哈希.链表.集合和有序集合. 特点: 3.为了保证效率,数据 ...
- Android之进度条2
我之前有写过一篇“Android之进度条1”,那个是条形的进度条(显示数字进度),这次实现圆形进度条. 点击查看Android之进度条1:http://www.cnblogs.com/caidupin ...