根據cocos2d-x-3.5/tools/tolua/README.mdown的說明 安裝好環境c++
依賴:函數
Python(PyYAML, Cheetah)工具
ndk-r9blua
根據tolua文件裏,引擎其餘的配置,依葫蘆畫瓢。code
複製一個genbindings.py,cocos2dx.ini修改參數。get
根據上一步配置,將生成出tolua的中間文件。回調函數
若是失敗,試試去除掉一些頭文件。io
若是咱們須要註冊lua函數給C++,以便讓C++來回調Lua。function
(參考引擎裏addTouchEventListener)配置
c++: typedef int LuaHandle; void registerMsgCallbackFunc(LuaHandle handle);
在生成的C++中間文件中,修改下實現
int lua_cocos2dx_usercls_HandleMessageQueue_registerMsgCallbackFunc(lua_State* tolua_S) 中 將形參轉化爲LUA函數類型 LUA_FUNCTION arg0 = toluafix_ref_function(tolua_S,2,0); // ok &= luaval_to_int32(tolua_S, 2,(int *)&arg0, "HandleMessageQueue:registerMsgCallbackFunc"); C++中的調用Lua函數: LuaStack *pStack = LuaEngine::getInstance()->getLuaStack(); pStack->pushString(messageContent.c_str()); // 傳一個String的參數做爲回調函數的形參 pStack->executeFunctionByHandler(luaHandler, 1); // 調用函數, 並帶一個形參