cocos2dx 注册lua回调到c++
发布时间:2020-12-14 21:32:28 所属栏目:百科 来源:网络整理
导读:int Connect::test(int arg) { auto enginge = cocos2d::LuaEngine::getInstance(); auto stack = enginge-getLuaStack(); stack-pushInt(18); stack-pushString("test event"); stack-pushInt(10); stack-executeFunctionByHandler(m_handle,3); stack-clea
int Connect::test(int arg) { auto enginge = cocos2d::LuaEngine::getInstance(); auto stack = enginge->getLuaStack(); stack->pushInt(18); stack->pushString("test event"); stack->pushInt(10); stack->executeFunctionByHandler(m_handle,3); stack->clean(); return 0; } int Connect::registerEventHandle(int handle) { m_handle = handle; return 0; } int lua_ray_network_Connect_registerEventHandle(lua_State* tolua_S) { int argc = 0; RaySocket::Connect* cobj = nullptr; // bool ok = true; #if COCOS2D_DEBUG >= 1 tolua_Error tolua_err; #endif #if COCOS2D_DEBUG >= 1 if (!tolua_isusertype(tolua_S,1,"RaySocket.Connect",&tolua_err)) goto tolua_lerror; #endif cobj = (RaySocket::Connect*)tolua_tousertype(tolua_S,0); #if COCOS2D_DEBUG >= 1 if (!cobj) { tolua_error(tolua_S,"invalid 'cobj' in function 'lua_ray_network_Connect_registerEventHandle'",nullptr); return 0; } #endif argc = lua_gettop(tolua_S)-1; if (argc == 1) { // int arg0; // ok &= luaval_to_int32(tolua_S,2,(int *)&arg0,"RaySocket.Connect:registerEventHandle"); // if(!ok) // { // tolua_error(tolua_S,"invalid arguments in function 'lua_ray_network_Connect_registerEventHandle'",nullptr); // return 0; // } // need modify int handler = (toluafix_ref_function(tolua_S,0)); int ret = cobj->registerEventHandle(handler); // need modify tolua_pushnumber(tolua_S,(lua_Number)ret); return 1; } luaL_error(tolua_S,"%s has wrong number of arguments: %d,was expecting %d n","RaySocket.Connect:registerEventHandle",argc,1); return 0; #if COCOS2D_DEBUG >= 1 tolua_lerror: tolua_error(tolua_S,"#ferror in function 'lua_ray_network_Connect_registerEventHandle'.",&tolua_err); #endif return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |