博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【COCOS2DX-LUA 脚本开发之四】使用TOLUA++编译PKG,从而创建自定义类让LUA脚本使用...
阅读量:6871 次
发布时间:2019-06-26

本文共 8470 字,大约阅读时间需要 28 分钟。

本站文章均为   原创,转载务必在明显处注明: 
转载自【黑米GameDev街区】 原文链接: 

此篇基本

在Lua第三篇中介绍了,如何在cocos2dx中使用Lua创建自定义类供Lua脚本调用使用,当时出于Himi对Lua研究不够深入,所以当时使用了笨方法手动添加的方式进行的,那么本篇将介绍利用tolua++快速将我们自定义的c2dx类嵌入,供 lua脚本使用。

首先介绍整个过程:

之前我们的过程: 自定义类->手动到LuaCoco2d.cpp中手动添加binding->lua使用

现在我们的过程是: 自定义类->使用tolua++工具编译到LuaCoco2d.cpp中->lua使用

下面进行详细步骤讲解:

步骤一:首先自定义类(这里Himi自定义类名 “MySprite”)

MySprite.h

 

MySprite.cpp

步骤二:利用tolua++编译我们创建的pkg,将自定义类嵌入LuaCocos2d.cpp中

首先我们到cocos2dx引擎目录下找到tools下的tolua++文件夹。

然后你看到很多的pkg文件,你可以使用文本打开,就会发现都是Cocos2dx引擎封装的类、函数定义,如下CCSprite.pkg

 

没错,我们也会按照类似方式进行创建我们自定义类的pkg文件。

我们自定义一个文件(文本、xcode等都可以),后缀 .pkg ,然后将Himi自定义的MySprite类定义到pkg中,如下:

注意:只要自定义类.h中的内容,至于cpp的实现,binding后lua自动调用你类的函数

MySprite.pkg

在pkg中我只是定义了创建函数而已,至于更多的函数就交给大家自定义啦,另外我们注意书写pkg时是需要几条规则的,其实在tolua++这个文件夹中我们也能看到有一个名字叫 README 的文件,打开如下:

 

这个文件声明了书写pkg的规则,不多赘述。

书写好我们的pkg之后,将pkg文件放置此tolua++文件夹下即可,然后配置我们tolua++工具。

继续在tolua++文件夹中解压tolua++.Mac.zip 文件,会得到一个tolua++的工具,如下图:

 

 

解压出工具之后,我们还要在tolua++文件夹中,配置tolua++路径,打开“build.sh”文件,如下:

 

这里 TOLUA 是tolua++工具的位置(路径后面要架上 /tolua++  表示这个工具),最下面配置的是编译后的luaCocos2d.cpp文件导出的位置,Himi这里配置到桌面,配置如下:

 

 最后,我们要将我们定义的pkg文件注册到 tolua++文件夹下的Cocos2d.pkg中,如下:

 

如上步骤都OK后,我们就可以使用“终端”,先cd到tolua++的文件夹下,然后使用“make”命令执行tolua++工具。

(如果这里终端不能正常执行, 请继续修改tolua++文件夹下的: makefile  ,将其路径配置一下即可。)

终端正常执行后,会在一开始指定的目录生成LuaCocos2d.cpp 文件,且其中已经binding好了自定义类,将生成的LuaCocos2d.cpp替换到你项目的/libs/lua/cocos2dx_support下的LuaCocos2d.cpp 文件。

Himi建议生成的LuaCocos2d.cpp 文件路径直接设置你的项目的/libs/lua/cocos2dx_support下很方便

注意:这时候LuaCoco2d.cpp中虽然已经binding了我们的自定义类,但是没有引用我们的头文件,所以我们还需要在LuaCocos2d.h中倒入我们自定义类.h 。

步骤三:Lua测试我们的自定义类

运行截图如下:

 

OK,今天就到这,希望大家多多探讨,有问题请及时留言。

你可能感兴趣的文章
Java内存区域
查看>>
记录自己用的常见的一些方法
查看>>
请求与响应
查看>>
react项目中使用mocha结合chai断言库进行单元测试
查看>>
css3动画
查看>>
Spring Boot 单元测试二三事
查看>>
电脑中播放的声音怎么在线录制
查看>>
微信小程序开发心得
查看>>
nfs
查看>>
Angular vs React 最全面深入对比
查看>>
containerd项目正式从CNCF毕业
查看>>
中台之上(十二):如何快速设计业务架构?
查看>>
C#的未来:托管指针
查看>>
微软发布UWP Bridge项目将一切应用转为Windows应用
查看>>
语义鸿沟、异构鸿沟、数据缺失,多模态技术如何跨过这些坎?
查看>>
与广告“互动”—情景互动式创意广告
查看>>
使用外部表查看ORACLE报警日志
查看>>
业务发展如何利用创新驱动力量?
查看>>
云数据加密公司LOCKet获千万级Pre-A融资
查看>>
爱尔兰WElink Energy宣布在葡萄牙建立220MW太阳能光伏项目
查看>>