【COCOS2DX-LUA 腳本開發之九】cocos2dx-LuaProxy擴展extensions包

 

本站文章均爲 李華明Himi 原創,轉載務必在明顯處註明:(做者新浪微博: @李華明Himi html

轉載自【黑米GameDev街區】 原文連接: http://www.himigame.com/lua1/1322.html 

          ☞ 點擊訂閱 ☜
 本博客最新動態!及時將最新博文通知您!git


                 

 
 

 

首先不少童鞋可能對於 cocos2dx-LuaProxy 不太熟悉,那麼Himi簡單的一句話進行敘述:github

cocos2dx-LuaProxy 的做用主要是讓cocos2dx引擎的擴展包(extensions)binding到Lua,便於作cocos2dx-lua項目開發者們。windows

這裏先附上cocos2dx-LuaProxy下載地址:https://github.com/shawnclovie/cocos2dx-LuaProxyapp

仔細的童鞋能夠明顯的看出cocos2dx-LuaProxy最新一次的更新與本篇文章發佈時間是不超過兩個小時的,說這個,不是說cocos2dx-LuaProxy是Himi作的,而是想說的是:框架

Himi在使用cocos2dx-LuaProxy遇到了虛函數問題致使cocos2dx-LuaProxy不能在本人i的Xcode中正常編譯, 恰巧的是剛剛跟cocos2dx-LuaProxy的做者交流過,其做者修正了一版!ide

廢話不說了,下面詳細介紹如何在cocos2dx-lua項目中經過cocos2dx-LuaProxy使用cocos2dx引擎擴展extensions包。函數

下載 cocos2dx-LuaProxy 解壓後以下圖:測試

QQ20130412-7@2x

繼續看下面的cocos2dx引擎的extensions擴展包的目錄截圖,經過對比目錄你們能夠看的很清楚 cocos2dx-LuaProxy爲咱們作了哪些工做。ui

QQ20130412-8@2x

 

OK,下面詳細介紹如何使用 cocos2dx-LuaProxy:

第一步:將咱們解壓後的 cocos2dx-LuaProxy文件下的 tolua 與ui文件夾加入咱們的項目中!
加入後,若是你當即使用Xcode進行build編譯,會發現報錯。(windows下應該不會),錯誤以下圖:

QQ20130412-9@2x

經過錯誤信息能夠清晰的看到是咱們剛導入的 cocos2dx-LuaProxy框架中UI包下的UIEventDispatcher類的問題, 解決方式 刪除此UIEventDispatcher類,UIEventDispatcher.h 和 UIEventDispatcher.cpp都刪除便可。

其緣由 cocos2dx-LuaProxy的README 中講的很詳細了,以下:

 

  
  
           
  
  
  1. You may safety remove ui/UIEventDispatcher.cpp(and .h), it's just design for win32. 
 

是的,UIEventDispatcher 只適用於win32,因此咱們儘管刪除就對啦~而後再build編譯就不會有問題了。

第二步:

首先在AppDelegate.cpp 中導入頭luaopen_LuaProxy文件 :

#include 「luaopen_LuaProxy.h」

另外繼續在AppDelegate.cppd的applicationDidFinishLaunching函數中,在獲取到CCLuaEngine實例後進行添加以下代碼:

 

  
  
           
  
  
  1. CCLuaStack *pStack = pEngine->getLuaStack(); 
  2.     lua_State* L = pStack->getLuaState(); 
  3.     luaopen_LuaProxy(L); 
 

以下圖:

QQ20130412-10@2x

    注意:當載入使用ccbi時須要首先建立一個CCBProxy,你須要先建立一個CCBProxy! 

 

  
  
           
  
  
  1.    
  2. local proxy = CCBProxy:create() 
 

下面咱們書寫lua測試代碼,來測試cocos2dx-LuaProxy 的其中一個對HttpClient功能擴展:

 

  
  
           
  
  
  1. -- Get 
  2.         CCHttpRequest:open("https://google.com/search?q=LuaProxy&safe=strict", kHttpGet):sendWithHandler
  3.         function(res, hnd) 
  4.         print(res:getResponseData(), res:getResponseCode()) 
  5.         end
 

控制檯輸出:

QQ20130412-11@2x

 

好啦,2點半多了,準備準備要睡覺了,安。 :yl:

相關文章
相關標籤/搜索