国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-14 20:36:26
字體:
來源:轉載
供稿:網友

本文主要介紹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 1 $pfile "class_A.pkg"2 2 $pfile "class_B.pkg"
View Code

 (2)具體每個class文件,遵循README。看看內容:

1     1) enum keeps the same2     2) remove CC_DLL for the class defines, pay attention to multi inherites3     3) remove inline keyWord for declaration and implementation4     4) remove public protect and private5     5) remove the decalration of class member variable6     6) keep static keyword7     7) remove memeber functions that declared as private or protected
View Code

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

1 1)枚舉不變2 2)去掉類定義中的 CC_DLL ,注意多繼承(?)3 3)去掉聲明和實現中的 inline 關鍵字4 4)去掉public、protected、private關鍵字5 5)去掉類成員變量的聲明6 6)保留static關鍵字7 7)去掉限定為private或protected的方法
View Code

  比如,class_A.pkg:

 1 class class_A : public cocos2d::CCObject 2 { 3     /** 這是一個關于綁定c++到lua的例子1 4      * 5      */ 6     static std::string test1(const char *name); 7  8     /** 這是一個關于綁定c++到lua的例子2 9      *10      */11     void test2();12 };
View Code

 

3、lua

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

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

1 local CCObjectTypes = {2     "class_A",3     "class_B",4 }
View Code

 (2)下面很長一段,都是關于綁定接口文件,自動生成的規則,我們主要關注 #include 這部分即可。

 1 replace([[#ifndef __cplusplus 2 #include "stdlib.h" 3 #endif 4 #include "string.h" 5  6 #include "tolua++.h"]], 7       [[ 8  9 extern "C" {10 #include "tolua_fix.h"11 }12 13 #include <map>14 #include <string>15 16 #include "class_A.h"17 #include "class_B.h"18 ]])
View Code

 

4、sh

  可以直接復制一份basic.sh,然后修改對應的文件名稱:.lua、.cpp、.h、.pkg

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孟村| 仲巴县| 正安县| 遵义县| 崇阳县| 苍溪县| 瑞金市| 竹北市| 施甸县| 西乌珠穆沁旗| 黄山市| 恭城| 巴中市| 梓潼县| 隆回县| 达州市| 海宁市| 金华市| 庆元县| 顺义区| 浪卡子县| 德阳市| 祁阳县| 永济市| 麻栗坡县| 诸暨市| 米易县| 乐亭县| 云霄县| 德化县| 长岛县| 荆门市| 石门县| 海原县| 潞城市| 南郑县| 洞口县| 汉中市| 新化县| 乌兰县| 怀远县|