cocos2dx之Lua调用C++

摘要:
//博客.csdn.net/dingkun520wy/article/details/498397171。编写自己的ini文件。在cocos2d-x3.8.1/tools/tolua目录中,可以看到genbindings.py脚本和大量的。ini文件。如果宏存在于。ini配置文件_判断=。。。宏定义。

现在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。大部分内容都可以凑合不需要改,这里仅列出必须要改的重要部分:

cocos2dx之Lua调用C++第1张


特别注意:

    如果.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 = {” 找到要添加的位置

cocos2dx之Lua调用C++第2张


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目录下看到新生成的文件:

cocos2dx之Lua调用C++第3张

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

cocos2dx之Lua调用C++第4张


5、修改lua_module_register.h文件 

cocos2dx之Lua调用C++第5张


6Lua中的使用

 

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

免责声明:文章转载自《cocos2dx之Lua调用C++》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇stl的stack在开发中的应用Row size too large. The maximum row size for the used table type 解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JAVA中使用动态链接库须知

好不容易 使用cygwin+windows打了个包,放到JAVA中使用。但是还是会报各种错。   JAVA中使用.so文件 static{ System.loadLibrary("test"); //加载libtest.so } 以上是网上的经典用法,很简单的一句。但是用的时候还是出错了。。。 主要还是.so路径找不到。找了大半天,终于,问题解决了...

CentOS7安装python3.8.5

一、安装依赖包 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel yum install gcc gcc-c++ openssl-devel libffi-dev...

二、Maven包的管理与更新

一、Maven中由pom.xml文件进行包管理,在我们创建的项目中找到这个文件并打开 project:文件中顶级元素 modelVersion指明POM使用的对象模型的版本。这个值很少改动 groupId:指明创建项目的组织或小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.pl...

spring使用@Value标签读取.properties文件的中文乱码问题的解决

 最近测试某个老系统的时候,启动的时候发@Value注入的中文是乱码,文件使用GBK/UTF-8的时候均会出现乱码问题,但是spring配置文件里面注入的占位符并没有这个问题,bean文件设置了file-encoding="UTF-8"亦如此。 经查,可通过如下方式解决: @Component @PropertySource(value = "class...

[二] JavaIO之File详解 以及FileSystem WinNTFileSystem简介

File类 文件和目录路径名的抽象表示形式。 我们知道,对于不同的操作系统,文件路径的描述是不同的 比如 windows平台:用 linux平台:用/   File是Java为了这一概念提供的抽象描述,与系统无关的视图 抽象路径名有两个组件: 1.可选的与系统有关的前缀  字符串   比如盘符,"/" 表示 UNIX 中的根目录,...

ligerUI框架

一、介绍 ligerUI是一个轻量级的前端开发框架。简单的说,就是能够帮助开发快速搭建网页,并且不需要更多的写前端代码,能够在最短的时间内开发出一套美观,优雅的前端界面。 需要掌握的技术有html,css,js,jquery,json,还有一些后端代码能力,不然就不能开发出自己想要的功能咯。 首先进入官网下载一个ligerUI的demo,下载好之后的效果...