关于cocos2dx如何绑定c++的静态方法和类给lua调用

      静态绑定(这名词哪来的?呵呵 我也不知道 不要在意那么多细节),直接是绑定静态方法,不是绑定类的实例方法,绑定类的实例方法有点屌,知道为什么lua可以实现c++为底层的游戏框架不,其实就是利用绑定类的这种方法(应该是 哈哈),写好c++的类,直接绑定到lua中用。怎么做的,后面慢慢道来。
新建一个lua项目,注意是lua语言。打开项目的class源码文件夹,
1、添加c++接口代码新添加一个luaStaticBinding.h头文件,如图:
这里写图片描述
这里一定要注意方法的格式,要按照这种格式

    int methodName(luaState *L)
    {
        //todo 
        return num;     (num指返回参数的个数)
    }

2、然后是注册c++方法注册静态方法在与class下面的AppDelegate的applicationDidFinishLaunching方法中,找找有如图代码的位置:
这里写图片描述

直接敲入
lua_register(L, “sayHello”, sayHello); (记得在AppDelegate上面引用luaStaticBinding.h)
ok,搞定。
3、测试
在lua代码文件中的main中添加一行代码:
sayHello()
运行,如果log出现如图则表示成功了。

这里写图片描述

下面来个屌的,c++类的绑定。
1、有时候我们遇到性能比较耗的代码,那没办法用c++吧,可以,写好直接注册给lua用一样的效果还有c++的速度。有时候还遇到纯c++写的模块代码要移植过来下面里面,那也要绑定。
2、先到class下面目录下添加一个test.h文件和test.cpp文件,实现如图:
test.h
这里写图片描述

test.cpp
这里写图片描述

这里是按照cocos2d的类的实现方式,就是为了方便内存管理。如果自己编写类不按照这种方式的话,有可能在用脚本生产的时候不能通过,未验证。

3、编写ini配置文件
进入/Users/stephenxu/Desktop
/mr_xin/mygame/luabindingTest/frameworks/cocos2d-x/tools/tolua
添加一个cocos2dx_test.ini文件,并添加如下内容。
这里有个模板,复制就可以了。也可以复制文件夹下的一个ini文件,复制,修改也可以(推荐),必要的地方修改,其他地方删除。这里出错生成将不会通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值