cocos2dx luabind(繫結自定義類)

2021-07-24 10:38:37 字數 2018 閱讀 8817

之前並沒有接觸到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 類建立...