cocos2dx-lua綁定自訂c++類(一)

來源:互聯網
上載者:User

本文主要介紹mac上,如何將自訂的c++類,綁定到lua。

1、工具先行

  找到 你的cocos2d-x/tools/tolua++,裡面檔案按類型大致分為:

  (1)*.pkg:用於定義要綁定的c++類,暴露哪些介面。

  (2)*.lua:用於定義產生的lua繫結檔案,都使用哪些轉換規則。

  (3)*.sh:使用tolua++,根據.lua中的規則,將.pkg中定義的類,輸出為包含綁定介面的.cpp檔案。

  (4)README檔案,這個比較重要,涉及到pkg檔案要使用的具體規則。

2、pkg

 (1)通常為項目定義一個總的pkg檔案,裡麵包含項目中具體使用的class的pkg檔案。即 test_project.pkg:

1 $pfile "class_A.pkg" 2 $pfile "class_B.pkg"View Code

1 2) remove CC_DLL for the class defines, 3 4 5 6 7) remove memeber functions that declared as private or protectedView Code

  大體一看就懂,簡單翻譯如下:

1 2 3 4 5 6 7)去掉限定為private或protected的方法View Code

  比如,class_A.pkg:

static std::string test1(const char *name) void test2() }View Code

 

3、lua

  這個可以參考basic.lua或basic_cocostudio.lua,可以直接複製一份,改名為test_project.lua。解釋一下需要關注的部分:

 (1)CCObjectTypes 是一個放置要綁定的類型名稱的數組 

local CCObjectTypes = "class_A", "class_B", }View Code

 (2)下面很長一段,都是關於綁定介面檔案,自動產生的規則,我們主要關注 #include 這部分即可。

replace( #include "stdlib.h" #include "string.h" #include "tolua++.h"]], extern "C" #include "tolua_fix.h" #include "class_A.h" #include "class_B.h" ]])View Code

 

4、sh

  可以直接複製一份basic.sh,然後修改對應的檔案名稱:.lua、.cpp、.h、.pkg

# Invoked build.xml, SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE}")" TOLUA= if TOLUA=`which tolua++5.1 if echo "Unable to find tolua++ (or tolua++5.1) in your PATH." exit 1 test_project.pkgView Code

  簡單解釋各個參數的含義:

•/tolua++ :lua綁定工具•-L:lua檔案(.lua)•-o:組建檔案(.cpp)•-H:產生標頭檔(.h)•最後,使用的pkg檔案 如果,指令碼運行時,提示“環境裡無法找到 tolua++”。可以將 ${TOLUA} 直接寫成 ./tolua++ 小結:  為了不與cocos2d-x內建的內容發生混淆,在 你的cocos2d-x/tools/tolua++/ 路徑下,建立目錄“你的項目名稱”,然後按上面的方法,配置好 pkg,lua,sh的內容。運行sh即可。  下面是我改的一個指令碼,tolua++運行後,會開啟產生的綁定代碼檔案所在路徑。 # Invoked build.xml, SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE}")" open ../../../scripting/lua/cocos2dx_supportView Code 綁定好的cpp檔案,如何在工程中使用,參考:cocos2dx-lua綁定自訂c++類(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.