cocos2dx Lua 版本中无法调用setLastFrameCallFunc

cocos2dx Lua 版本中无法调用setLastFrameCallFunc,第1张

概述 大坑,大坑  需要手动修改源码 目录:cocos\scripting\lua-bindings\manual\ui 文件:lua_cocos2dx_ui_manual.cpp 添加: #include "cocostudio/ActionTimeline/CSLoader.h" #include "cocostudio/ActionTimeline/CCActionTimeline.h" sta

大坑,大坑



需要手动修改源码

目录:cocos\scripting\lua-bindings\manual\ui


文件:lua_cocos2dx_ui_manual.cpp


添加:

#include "cocostudio/ActionTimeline/csloader.h"
#include "cocostudio/ActionTimeline/CCActionTimeline.h"


static int lua_cocos2dx_ActionTimeline_setLastFrameCallFunc(lua_State* L){	if (nullptr == L)		return 0;	int argc = 0;	cocostudio::timeline::ActionTimeline* self = nullptr;#if COCOS2D_DEBUG >= 1 	tolua_Error tolua_err;	if (!tolua_isusertype(L,1,"ccs.ActionTimeline",&tolua_err)) goto tolua_lerror;#endif 	self = static_cast<cocostudio::timeline::ActionTimeline*>(tolua_tousertype(L,0));#if COCOS2D_DEBUG >= 1 	if (nullptr == self) {		tolua_error(L,"invalID 'self' in function 'lua_cocos2dx_ActionTimeline_setLastFrameCallFunc'\n",NulL);		return 0;	}#endif 	argc = lua_gettop(L) - 1;	if (1 == argc)	{#if COCOS2D_DEBUG >= 1 		if (!toluafix_isfunction(L,2,"LUA_FUNCTION",&tolua_err))		{			goto tolua_lerror;		}#endif 		LUA_FUNCTION handler = (toluafix_ref_function(L,0));		self->setLastFrameCallFunc([=](){			LuaEngine::getInstance()->getLuaStack()->executeFunctionByHandler(handler,0);		});		return 0;	}	luaL_error(L,"'setLastFrameCallFunc' function of ActionTimeline has wrong number of arguments: %d,was expecting %d\n",argc,1);#if COCOS2D_DEBUG >= 1 tolua_lerror:	tolua_error(L,"#ferror in function 'setLastFrameCallFunc'.",&tolua_err);#endif 	return 0;}static voID extendActionTimeline(lua_State* L){	lua_pushstring(L,"ccs.ActionTimeline");	lua_rawget(L,LUA_REGISTRYINDEX);	if (lua_istable(L,-1))	{		//tolua_function(L,"setFrameEventCallFunc",lua_cocos2dx_ActionTimeline_setFrameEventCallFunc);		tolua_function(L,"setLastFrameCallFunc",lua_cocos2dx_ActionTimeline_setLastFrameCallFunc);	}	lua_pop(L,1);}


然后在:register_all_cocos2dx_ui_manual 函数中添加:

extendActionTimeline(L);


最后启动模拟器:即可调用到setLastFrameCallFunc


不要谢我, 我叫雷锋!!

总结

以上是内存溢出为你收集整理的cocos2dx Lua 版本中无法调用setLastFrameCallFunc全部内容,希望文章能够帮你解决cocos2dx Lua 版本中无法调用setLastFrameCallFunc所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1082170.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存