Mac下使用Cocos2d-x Lua載入Cocos Studio到處的Json檔案和動畫
阿新 • • 發佈:2019-02-17
本文轉自:http://segmentfault.com/blog/tangyunlou/1190000000648696
一、匯入Json
1、開啟Cocos Studio,新建專案,然後開始拖自己需要的控制元件和設計各種幀動畫。因為是beta版的,還有一些bug,比如碰到過在介面裡放入textField,設定成不可見,匯入到程式裡執行發現沒有效果。
2、做好之後選擇選單上的"檔案" -> "匯出專案",填上需要的內容之後點選 "確定",會在專案目錄下生成一個資料夾,需要把資料夾放入到Lua專案的res目錄裡
3、在需要引用介面的地方加入程式碼:
1 |
local node = ccs.NodeReader:getInstance():createNode( "xxx/xxx.ExportJson" );
|
就把對應的介面載入進來了,這裡有個坑,就是如果使用Windos的Cocos Studio1.6匯出的Json檔案用上面的方法讀會直接崩潰,Windows下匯出的Json應該使用GUIReader讀取。
1 |
local node = ccs.GUIReader:getInstance():widgetFromJsonFile( "res/xxx/xxx.json" );
|
4、獲取介面裡對應的控制元件可以通過tag和name找到:
1 2 |
local child = Node:getChildByTag(tagID); local child = Node:getChildByName(name);
|
使用這種方式獲取控制元件有一個問題,就是沒有辦法跨級,如果是Panel嵌套了好幾層,就得一層一層往下找,系統提供了另外一個方法:
1 |
local child = ccui.Helper:seekWidgetByName(node, name);
|
這樣不管控制元件在主node下的多少層,都能獲取到
5、新增對應按鈕的點選事件:
1 |
child:addTouchEventListener(touchEvent);
|
學習完上面的內容,可以做出一些基本的介面和互動了。
2、匯入動畫
1. Animation Editor
使用這個模式是動畫編輯模式是用來做骨骼動畫的,這種模式匯出後的使用方法是:
ccs.ArmatureDataManager:getInstance():addArmatureFileInfo("Test_1/Test0.png","Test_1/Test0.plist","Test_1/Test_1.ExportJson"); -- 載入動畫所用到的資料
local armature = ccs.Armature:create("Test") -- 建立動畫物件
armature:setPosition(0, 0) -- 設定位置
armature:getAnimation():play("aa") -- 設定動畫物件執行的動畫名稱
scene:addChild(armature) -- 把動畫物件載入到場景內
2. UI Editor
這個模式是用來做UI的,如果需要在UI上做一些動畫,比如透明度漸變和圖片縮放的動畫,用純程式碼去實現比較麻煩,這個時候使用UI Editor只需要拖拽幾下,設定幾個屬性就好了,特別好用!匯出後的使用方法是在載入過匯出的UI之後使用:
ccs.ActionManagerEx:getInstance():playActionByName("匯出的ExportJson檔名(注意:不要帶'/'前的內容)","動畫名稱")