之前並沒有接觸到lua,尤其現在cocos2dx 漸漸的以lua和js開發較多,所以最近就學著對lua繫結自定義類,中間也是碰到很多問題,記錄下分享出來,後面碰到還是可以解決的。
上面的所需的系統環境可以在:
/fun/frameworks/cocos2d-x/tools/tolua/readme.mdown
第乙個fun這個是專案的名稱,在這個readme檔案中提出了所需的環境。不過這個裡面是乙個坑啊!!!他在這裡面推薦使用的ndk r10c或者以上版本,當你使用這個版本的話編譯繫結檔案,會編譯出錯。wtf!!!
在genbindings.py 檔案中最上方你可以看到
# genbindings.py
# this script is used to generate luabinding glue codes.
# android ndk version must be ndk-r9b.
這是乙個多麼 * * 的問題啊
當你配置完成所需環境以後,然後就可以編寫需要提供給lua使用的c++檔案了。
我這邊直接在裡面新增需要繫結的類。
/fun/frameworks/runtime-src/classes/
自定義類的結構
#ifndef anylua_hpp
#define anylua_hpp
#include "cocos2d.h"
using namespace cocos2d;
class anylua
~anylua(){}
bool init();
std::string getvalue();
};#endif /* anylua_hpp */
#include
"anylua.hpp"
bool anylua::init()
std::string anylua::getvalue()
接下來也就是乙個重要的環節了,修改ini檔案。ini檔案所在位置:
/luaclass/frameworks/cocos2d-x/tools/tolua/
在這個檔案列表裡面找乙個複製重新命名為anylua.ini,修改檔案中部分位置
後面就是修改genbindings.py檔案,我直接在元檔案中進行的修改。
修改檔案中的141行的python的字典資料
cmd_args =
然後在通過終端進入到當前目錄:
/fun/frameworks/cocos2d-x/tools/tolua
執行如下命令列:
python genbindings.py
如果所需環境安裝正常,你就可以看到
---------------------------------
generating lua bindings succeeds.
---------------------------------
當然上面這句是在終端裡面顯示的,csdn這邊上傳出現了問題,所以就直接放了一段文字。
執行繫結成功後,我們就可以把檔案新增到專案中使用了。
/fun/frameworks/cocos2d-x/cocos/scripting/lua-bindings/auto/
這個就是輸出路徑了,同樣我們可以在genbindings.py裡面修改輸出路徑
然而到這裡並沒有結束,就是匯入的問題了。
由於在xcode中新增class檔案要選擇
新增classes一定要選擇使用create groups
cocos2dx CCScrollView使用示例
總的來說,就是有乙個容器container 錨點 0,0 大小 為全部內容的大小 scrollview 大小,錨點,setdelegate 視窗大小 setviewsize 設定容器 setcontainer 方向 ccnode m pmedalcontainer ccscrollview m ps...
cocos2d實現語音 Cocos2d 聲音API
param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...
Cocos2d x教程第 14 講 Cocos2d
cocos2d x 2.2.0之前的版本常用的json解析的三方庫一般是 jsoncpp 2.2.x的版本中已經包含了jsoncpp的庫,但是卻把名字給換了,導致引入jsoncpp庫的同志們發生各種衝突.完成上述操作後就可以盡情發揮了.下面讓我們來認識一下幾個主要的類 value value 類建立...