天天看點

Cocos2d-x裡C++調用Lua

在Lua檔案裡注冊函數,其實就是注冊一個cc.Handler.CALLFUNC類型的事件,收到事件後執行reiceLogCallBack函數,data是傳給reiceLogCallBack函數的資料:

ScriptHandlerMgr:getInstance():registerScriptHandler(tolua.cast(data, "cc.Ref"),reiceLogCallBack, cc.Handler.CALLFUNC)

//lua函數

function reiceLogCallBack(data)

      print("收到登陸傳回結果")

end

data是C++傳回的資料,必須是cc.Ref類型的

//C++處理 發送一個事件,Lua中注冊(監聽)

UserData ud("minyou",111111)

BasicScriptData data((void*)this,&ud)  

ScriptEvent  eve(ScriptEventType::kCallFuncEvent, &data);  

ScriptEngineManager::getInstance()->getScriptEngine()->sendEvent(&eve);