1------Cocos2dx3.0 Lua 初步绑定

本文详细介绍了如何通过九个步骤实现Lua绑定C++的过程,包括环境配置、类定义、文件修改及注册等关键技术环节。

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

所谓lua绑定就是说在lua中可以调用c++的类或者函数,整个过程细分为九步

1.下载配置环境
2.编写定义的c++类
3.修改ini文件
4.修改genbindings.py
5.运行genbindings.py
6.修改lua_cocos2dx_custom_auto.cpp文件
7.注册给lua使用
8.导入vs编译
9.调用

1.下载配置环境

如果你写过cocos2dx的工程,那么你应该存在python这一最基本的环境。l
ua绑定需要如下环境:
1.python:版本2.7.5 ,在系统变量中的path后加上python的安装路径,一般都是c/python27
2.ndk:版本ndk-r9d,在系统变量中新添变量名NDK_ROOT,变量为ndk解压的目录
3.下载PyYAML-3.10.win32-py2.7.exe,安装到python目录下,一般会自动安装到python目录下,无需手动选择。
4.下载Cheetah,将其放在C:\Python27\Lib\site-packages目录下

2.编写定义的c++类

c++类可以写在任何地方,个人习惯,笔者在

 工程目录/frameworks\cocos2d-x\cocos

下新建一个custom文件夹,将自定义类放在其中。


1.png

3.修改ini文件

首先找到

 工程目录\frameworks\cocos2d-x\tools\tolua

复制一份cocos2dx.ini并改名为cocos2dx_custom.ini,打开cocos2dx_custom.ini。
做如下修改


2.png

修改图中四个地方,注意修改成自己的类名
target_namespace = cc表示命名空间
如果有多个类要绑定,则用空格隔开

4.修改genbindings.py

该文件在

 工程目录\frameworks\cocos2d-x\tools\tolua

3.png

打开genbindings.py文件


4.png

在cmd_args 中加入

'cocos2dx_custom.ini' : ('cocos2dx_custom', 'lua_cocos2dx_custom_auto'), \

注:python注释为#,这里将cmd_args其他的元素注释掉是因为这些文件都是生成过得,没必要再生成浪费时间
这行代码表示在cocos2dx_custom中找到cocos2dx_custom的模块,然后生成lua_cocos2dx_custom_auto文件

5.运行genbindings.py

通过cmd的cd命令直接进入到tolua的mlu下,运行genbindings.py


5.png

出现如图所示就说明桥接文件生成成功了。

6.修改lua_cocos2dx_custom_auto.cpp文件

上一步后,在

工程目录\frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto

下便有了两个生成的文件

lua_cocos2dx_custom_auto.cpp
lua_cocos2dx_custom_auto.hpp

6.png

打开
lua_cocos2dx_custom_auto.cpp
文件,修改成如图所示


7.png

7.注册给lua使用

进入到文件夹

 C:\Users\user\Documents\Cocos\Link\frameworks\cocos2d-x\cocos\scripting\lua-bindings\manual

打开CCLuaStack.cpp,添加

#include "lua_cocos2dx_custom_auto.hpp"
register_all_cocos2dx_custom(_state);

8.png

9.png

8.导入vs编译

导入自定义的cpp和h文件


10.png

导入cpp和hpp文件


11.png

编译后没问题就可以在lua中调用我们自定义的c++类了。

9.调用

在lua中通过

 cc.自定义类名:函数名()

来调用c++函数



文/最怕认真(简书作者)
原文链接:http://www.jianshu.com/p/0f1e7d136863
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值