Cocos2d-x3.0如何绑定调用lua回调函数

本文介绍了如何在Cocos2d-x3.0中绑定和调用Lua回调函数。首先,展示了如何在C++类中定义函数并使用genbinding.py导出,然后修复tolua转换错误。接着,详细说明了在C++端如何添加和使用ScriptHandlerMgr进行回调函数管理。在Lua端,展示了注册回调函数的方法。最后,解释了C++如何调用Lua回调,并强调了返回值在错误检测中的重要性。
摘要由CSDN通过智能技术生成

(假设你已经会使用tolua导出自定义类)

首先,在C++先写一个类,里面包含这么一个函数


void registerScriptFuncHandler(int handler)
{
	return;
}


没错,这个函数什么都不用做。


接着使用 genbinding.py 导出类


你会得到一个不能用的导出函数


int lua_MyClass_MyPrefix_registerScriptFuncHandler(lua_State* tolua_S)


不能用的原因是        ok &= luaval_to_int32(tolua_S, 2,(int *)&arg0);  这一句。tolua抽风把一个函数类型错误地翻译成了整型,所以你在lua调用这个函数地时候会提示类型错误,期待的是一个整型值。


我把修改的正确示范贴出来


int lua_<span style="font-family: Helvetica; font-size: 11px;">MyClass_MyPrefix</span>_<span style="font-family: Arial, Helvetica, sans-serif;">registerScriptFuncHandler</span>(lua_State* tolua_S)
{
    int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值