Cocos2d 之 tolua

本文介绍了如何在Cocos2d-x游戏开发中,利用tolua将C++类导出给Lua使用。详细讲解了环境搭建、genbindings.py配置、ini文件设置、实操过程以及遇到的问题和解决方案,包括环境变量配置、Python库需求、ini文件结构等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在游戏开发过程中,主要业务逻辑等由Lua开发(因为可以动态热更、灵活便捷等),但是Lua毕竟是脚本语言,遇到一些高性能需求或其他涉及底层变动,需要用C++来实现(你大爷还是你大爷)。

对于将C++的类或方法导出给Lua调用,

Cocos2d-x引擎采用的是 tolua++,通过便携tolua++的pkg配置文件,来定义要导出的每一个类的信息,这个步骤相当于用tolua++的规则将类的头文件重写成pkg文件,tolua++会根据这个文件以及类的cpp文件来生成C++代码文件。

直接使用tolua++在批量导出的时候会比较麻烦,基于此,引擎提供了 genbindings.py 文件来完成批量导出的工作,流程如下:

  1. 编写要导出的C++类
  2. 为这个类编写一个ini配置文件(一个ini可对应多个类)
  3. 修改genbindings脚本,加载ini配置
  4. 执行genbindings脚本,生成类导出到Lua的C++代码
  5. 将生成的代码添加到项目中,并执行注册方法

本文主要内容一览:

  1. 环境搭建
  2. 使用到的相关配置结构介绍
  3. 具体实操
  4. 遇到问题及解决方案



环境搭建

Windows平台

  • NDK r9b
    • 这里 README上,写的需求版本 r10c or later;但是脚本头部注释要求版本 r9b;经过实际测试使用 r9b 版本NDK 有效。
    • 配置环境变量,ndk根目录:NDK_ROOT
  • Python2.7.3(32bit)
    • 配置环境变量,具体到exe文件:PYTHON_BIN(xxx\python.exe)
  • Python库 pyyaml
    • 解压或安装到上面python的相应位置: xxx\Lib\site-packages
  • Python库 pyCheetah
    • 解压或安装到上面python的相应位置: xxx\Lib\site-packages

Mac 平台

待补充



配置介绍

genbindings.py 文件

这个脚本文件主要作用是根据ini文件,执行 cocos2d\tools\bindings-generator\generator.py 来生成导出C++代码。

这个文件需要修改的地方不多,多注意下列几个地方即可:

  • project_root:项目工程根目录
  • cocos_root:cocos引擎根目录
  • cxx_generator_root:调用的generator.py文件所在的目录
  • tolua_root:tolua根目录,ini配置文件的目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值