1. 程式人生 > >Mac下使用Cocos2d-x Lua載入Cocos Studio到處的Json檔案和動畫

Mac下使用Cocos2d-x Lua載入Cocos Studio到處的Json檔案和動畫

本文轉自: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檔名(注意:不要帶'/'前的內容)","動畫名稱")