生活随笔
收集整理的這篇文章主要介紹了
关于tolua的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、首先在引擎的跟目錄下找到cocos2d-x自帶的工具tolua++
二、使用tolua++生成自定義類的聲明
打開tool文件夾中的readme文件如下:
[cpp] view plaincopy
1.?Generating?the?lua<-->C?bindings?with?tolua++??tolua++.exe?-tCocos2d?-o?LuaCocos2d.cpp?Cocos2d.pkg?? 我們為了方便可以制作一個批處理文件、放在tolua.exe同目錄下、每次點擊就可產生自定義類的聲明、如下
[cpp] view plaincopy
-----------------------------------------createCpp.bat---------------------------??@echo?on??E:\gkh_netdisk\tools\tolua++\tolua++.exe?-o?testCtoLua.cpp?testCtoLua.pkg??@pause??---------------------------------------------------------------------------------?? 然后開始編寫testCtoLua.pkg 要遵循以下的規則
[cpp] view plaincopy
2.Writing?.pkg?files??編寫pkg文件??1)enum?keeps?the?same?保持枚舉類型不變??2)remove?CC_DLL?for?the?class?defines,?pay?attention?to?multi?inherites?刪除CC_DLL的類定義、改為多繼承??3)remove?inline?keyword?for?declaration?and?implementation?刪掉聲明的inline關鍵詞??4)remove?public?protect?and?private?刪除訪問限定??5)remove?the?decalration?of?class?member?variable?刪除類的成員變量??6)keep?static?keyword??保留statiic關鍵詞??7)remove?memeber?functions?that?declared?as?private?or?protected?成員函數聲明為私人或受保護的都刪掉?? ?我這里就不去寫了、就直接用現成的CCDirector類做個測試
[cpp] view plaincopy
-----------?CCDirector.pkg-----------??????typedef?enum?{???????????????kCCDeviceOrientationPortrait?=?0,?????????????kCCDeviceOrientationPortraitUpsideDown?=?1,?????????????kCCDeviceOrientationLandscapeLeft?=?2,?????????????kCCDeviceOrientationLandscapeRight?=?3,???}?ccDeviceOrientation;????class?CCDirector?:?public?CCObject??{??????CCScene*?getRunningScene(void);??????double?getAnimationInterval(void);??????bool?isDisplayFPS(void);??????void?setDisplayFPS(bool?bDisplayFPS);??????bool?isRetinaDisplay();??????bool?isPaused(void);??????unsigned?int?getFrames(void);??????CCSize?getWinSize(void);??????CCSize?getWinSizeInPixels(void);??????CCSize?getDisplaySizeInPixels(void);??????CCPoint?convertToGL(CCPoint?obPoint);??????CCPoint?convertToUI(CCPoint?obPoint);??????void?runWithScene(CCScene?*pScene);??????void?pushScene(CCScene?*pScene);??????void?popScene(void);??????void?replaceScene(CCScene?*pScene);??????CGFloat?getContentScaleFactor(void);??????int?getDeviceOrientation();??????static?CCDirector*?sharedDirector(void);??};?? 然后將編寫好的*.pkg文件復制到tolua++文件目錄下、雙擊前文的批處理文件、不出意外就能生成相對應的Cpp文件了
?
CCDirector.cpp中的關鍵代碼是這些:
[cpp] view plaincopy
tolua_beginmodule(tolua_S,"CCDirector");??tolua_function(tolua_S,"getRunningScene",tolua_CCDirector_CCDirector_getRunningScene00);??tolua_function(tolua_S,"getAnimationInterval",tolua_CCDirector_CCDirector_getAnimationInterval00);??tolua_function(tolua_S,"isDisplayFPS",tolua_CCDirector_CCDirector_isDisplayFPS00);??tolua_function(tolua_S,"setDisplayFPS",tolua_CCDirector_CCDirector_setDisplayFPS00);??tolua_function(tolua_S,"isRetinaDisplay",tolua_CCDirector_CCDirector_isRetinaDisplay00);??tolua_function(tolua_S,"isPaused",tolua_CCDirector_CCDirector_isPaused00);??tolua_function(tolua_S,"getFrames",tolua_CCDirector_CCDirector_getFrames00);??tolua_function(tolua_S,"getWinSize",tolua_CCDirector_CCDirector_getWinSize00);??tolua_function(tolua_S,"getWinSizeInPixels",tolua_CCDirector_CCDirector_getWinSizeInPixels00);??tolua_function(tolua_S,"getDisplaySizeInPixels",tolua_CCDirector_CCDirector_getDisplaySizeInPixels00);??tolua_function(tolua_S,"convertToGL",tolua_CCDirector_CCDirector_convertToGL00);??tolua_function(tolua_S,"convertToUI",tolua_CCDirector_CCDirector_convertToUI00);??tolua_function(tolua_S,"runWithScene",tolua_CCDirector_CCDirector_runWithScene00);??tolua_function(tolua_S,"pushScene",tolua_CCDirector_CCDirector_pushScene00);??tolua_function(tolua_S,"popScene",tolua_CCDirector_CCDirector_popScene00);??tolua_function(tolua_S,"replaceScene",tolua_CCDirector_CCDirector_replaceScene00);??tolua_function(tolua_S,"getContentScaleFactor",tolua_CCDirector_CCDirector_getContentScaleFactor00);??tolua_function(tolua_S,"getDeviceOrientation",tolua_CCDirector_CCDirector_getDeviceOrientation00);??tolua_function(tolua_S,"sharedDirector",tolua_CCDirector_CCDirector_sharedDirector00);?? 只要把cpp中的對應的代碼復制到引擎目錄下cocos2d_support文件夾中Luacocos2d.cpp中就搞定了 然后重新編譯項目、就可以在lua中使用這個接口了、
轉載于:https://www.cnblogs.com/quansir/p/3170986.html
總結
以上是生活随笔為你收集整理的关于tolua的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。