[Cocos2dx]C++自定义类绑定到Lua

本文介绍了如何在Cocos2dx项目中使用bindings-generator脚本来自动生成C++类与Lua的绑定代码,包括理解该脚本的工作机制、编写自定义类、配置ini文件、运行脚本生成绑定文件,并在Lua中调用这些类的方法。同时,文章提到了处理C++命名空间与Lua映射的关键步骤。
摘要由CSDN通过智能技术生成

Cocos2dx通过工程里面的tools/toLua工具生成注册C++函数到lua的函数cpp文件

 bindings-generator脚本的工作机制

  1.  不用编写.pkg和.h文件了,直接定义一个ini文件,注册到Lua环境里的模块名是什么,就行了。
  2.  摸清了toLua++工具的生成方法,改由Python脚本动态分析C++类,自动生成桥接的.h和.cpp代码,不调用tolua++命令了
  3. 虽然不再调用tolua++命令了,但是底层仍然使用toLua++的库函数,比如tolua_function,bindings-generator脚本生成的代码就跟使用toLua++工具生成的几乎一样

bindings-generator步骤

0.写自己的C++类,按照cocos2d-x的规矩,继承cocos2d::Ref类,以便使用cocos2d-x的内存回收机制。当然不这么干也行,但是不推荐,不然在Lua环境下对象的释放狠麻烦。首先是自定义的C++类。通常将文件保存在frameworks/runtime-src/Classes/目录下:

//MyClass.h文件
#include "cocos2d.h"
 
using namespace cocos2d;
 
class MyClass : public Ref
{
public:
  MyClass()   {};
  ~MyClass()  {};
  bool init() { return true; };
  CREATE_FUNC(MyClass);
 
  int foo(int i);
};



//MyClass.cpp文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值