FairyGUI在Cocos2d-x下的多平臺(tái)接入和lua綁定

Cocos2d-x版本是3.16
FairyGUI庫(kù)來自https://github.com/fairygui/FairyGUI-cocos2dx

接入前確保你的項(xiàng)目在接入前可以通過cocos compile -p xxx 命令正常編譯打包采转,每接入一個(gè)平臺(tái)都可以通過此命令編譯打包以確認(rèn)是否接入正常。

預(yù)備

  1. 復(fù)制libfairygui到frameworks\cocos2d-x\cocos\editor-support\fairygui
  2. 修改CCLabel.h的672行陨帆,void updateBMFontScale();前添加virtual

綁定tolua

編寫cocos2d-x\tools\tolua\cocos2dx_fairygui.ini,修改ini里的headers字段残腌,后面添加LuaBasicConversions_fairygui.h,這樣生成的auto文件才會(huì)inlucde绍移。還是用我的吧集嵌。

  1. 修改 cocos2d-x\tools\tolua\genbindings.py,添加fairygui一行:
'cocos2dx_fairygui.ini' : ('cocos2dx_fairygui', 'lua_cocos2dx_fairygui_auto'), \
  1. 修改cocos2d-x\tools\bindings-generator\targets\lua\conversions.yaml里的ns_map:下添加fairygui的命名空間"fairygui::": "fgui."放吩,另外智听,還要分別在中間和底部添加下面代碼,以便處理Margin類型的轉(zhuǎn)換渡紫。
"Margin": "ok &= luaval_to_margin(tolua_S, ${arg_idx}, &${out_value}, \"${lua_namespaced_class_name}:${func_name}\")"
"Margin": "margin_to_luaval(tolua_S, ${in_value})"
  1. 在frameworks\cocos2d-x\cocos\scripting\lua-bindings\manual下新建fairygui目錄到推,把下面四個(gè)文件拷進(jìn)去。
lua_cocos2dx_fairygui_manual.hpp
lua_cocos2dx_fairygui_manual.cpp
LuaBasicConversions_fairygui.h
LuaBasicConversions_fairygui.cpp
  1. 在cmd中惕澎,切換到frameworks\cocos2d-x\tools\tolua目錄莉测,運(yùn)行python genbindings.py,正常的話會(huì)在frameworks\cocos2d-x\cocos\scripting\lua-bindings\auto生成兩個(gè)文件:
lua_cocos2dx_fairygui_auto.hpp
lua_cocos2dx_fairygui_auto.cpp
  1. 修改frameworks\cocos2d-x\cocos\scripting\lua-bindings\manual\lua_module_register.cpp唧喉,添加
#include "scripting/lua-bindings/manual/fairygui/lua_cocos2dx_fairygui_manual.hpp"

在lua_module_register中添加

register_all_cocos2dx_fairygui_manual(L);

接入Win32

  1. 在VS工程右鍵“添加” “現(xiàn)有項(xiàng)目”捣卤,找到libfairygui.vcxproj,在VS左側(cè)下端選擇“屬性管理器”八孝,展開libfairygui董朝,在Debug和Release中分別添加現(xiàn)有屬性表“cocos2dx.props”和“cocos2d_headers.props”,在cocos2d\2d目錄下可以找到干跛。
  2. 在VS中的libluacocos2d下的manual中新建項(xiàng)fairygui子姜,并把四個(gè)文件添加進(jìn)去。
  3. 打開屬性表的“cocos2dx.props”,通用屬性|鏈接器|輸入|附加依賴項(xiàng)楼入,添加libfairygui.lib

接入ios_mac

在xcode里的cocos2d_libs.xcodeproj下的editor-support下添加fairygui的引用闲询,然后在Build Settings的左上角,選擇cocos2d_libs(注意是藍(lán)色圖標(biāo))浅辙,在User Header Search Paths中添加${SRCROOT}/../cocos/editor-support/fairygui/Classes。然后在cocos2d_lua_bindings.xcodeproj的auto和manual里添加對(duì)應(yīng)的文件阎姥,貌似就可以了记舆。

接入android

修改frameworks\cocos2d-x\cocos\Android.mk,在適當(dāng)?shù)奈恢锰砑?/p>

LOCAL_STATIC_LIBRARIES += fairygui_static
$(call import-module,editor-support/fairygui)

修改frameworks\cocos2d-x\cocos\scripting\lua-bindings\proj.android\Android.mk呼巴,
在適當(dāng)?shù)奈恢锰砑?/p>

LOCAL_SRC_FILES += ../manual/fairygui/lua_cocos2dx_fairygui_manual.cpp \
                   ../manual/fairygui/LuaBasicConversions_fairygui.cpp \
                   ../auto/lua_cocos2dx_fairygui_auto.cpp
LOCAL_C_INCLUDES
        $(LOCAL_PATH)/../../../editor-support/fairygui/Classes \
        $(LOCAL_PATH)/../manual/fairygui \
LOCAL_EXPORT_C_INCLUDES下添加
        $(LOCAL_PATH)/../manual/fairygui \

測(cè)試

測(cè)試比較簡(jiǎn)單泽腮,首先確保各平臺(tái)運(yùn)行正常,然后在lua里調(diào)用
fgui.UIPackage:addPackage("res/test")
加載test包即可衣赶,具體使用請(qǐng)參考官網(wǎng)http://www.fairygui.com

ps:

對(duì)了诊赊,運(yùn)行tolua的時(shí)候,要用ndk r9b府瞄,然后用cocos命令編譯的時(shí)候要換成r16b碧磅,不然會(huì)報(bào)錯(cuò)……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鲸郊,更是在濱河造成了極大的恐慌丰榴,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秆撮,死亡現(xiàn)場(chǎng)離奇詭異四濒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)职辨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門盗蟆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舒裤,你說我怎么就攤上這事喳资。” “怎么了惭每?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵骨饿,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我台腥,道長(zhǎng)宏赘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任黎侈,我火速辦了婚禮察署,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘峻汉。我一直安慰自己贴汪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布休吠。 她就那樣靜靜地躺著扳埂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瘤礁。 梳的紋絲不亂的頭發(fā)上阳懂,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音柜思,去河邊找鬼岩调。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赡盘,可吹牛的內(nèi)容都是我干的号枕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼陨享,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼葱淳!你這毒婦竟也來了钝腺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蛙紫,失蹤者是張志新(化名)和其女友劉穎拍屑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坑傅,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僵驰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唁毒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒜茴。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浆西,靈堂內(nèi)的尸體忽然破棺而出粉私,到底是詐尸還是另有隱情,我是刑警寧澤近零,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布诺核,位于F島的核電站,受9級(jí)特大地震影響久信,放射性物質(zhì)發(fā)生泄漏窖杀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一裙士、第九天 我趴在偏房一處隱蔽的房頂上張望入客。 院中可真熱鬧,春花似錦腿椎、人聲如沸桌硫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)铆隘。三九已至,卻和暖如春南用,著一層夾襖步出監(jiān)牢的瞬間咖驮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工训枢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人忘巧。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓恒界,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親砚嘴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子十酣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容