使用 CocoStudio 場景編輯器來建立遊戲場景,其中包含遊戲 UI 與動畫,來定製一個遊戲主界面。php
對於環境的搭建使用,請參考以前的文章,或者實時關注 官方 最新版本的安裝使用方法。html
建立項目(項目名稱:MysticalCard),並導入項目 UI 資源,添加 一圖片框設定背景圖片。注意在工具攔設置 「畫布」 的大小(若是須要),這將決定着你的設計分辨率,在運行時還須要注意屏幕的適配問題,如放大縮小,位置偏移等,視具體狀況而定。json
爲界面添加 UI 元素,圖片框等,請根據本身的須要定製編輯器
實踐過程當中的注意事項ide
添加控件時注意必要的屬性設置工具
控件的命名規範,這有助於咱們從此在後臺編寫代碼獲取界面元素動畫
可交互的控件的 「可交互屬性」 開啓this
除了主界面一些必要的 UI 控件,咱們還須要一個 「對話框指示」 的動畫效果。這是一個幀動畫。編碼
準備工做。spa
以下圖所示:
打開 CocoStudio ,啓動 動畫編輯器
建立一個新的項目,後導入資源(在 「資源窗口」 中,點擊 「文件」 或者 「文件夾」 標示,添加須要的素材資源)
在 「資源窗口中」 點擊關鍵幀動畫的守幀圖片,拖動至 「渲染窗口」
使用 CocoStudio 能夠很好的幫助遊戲開發過程當中 分工合做。動畫編輯器 和 UI 編輯器能夠由多我的進行編輯,最後再由一我的統合資源,這也就是場景編輯器的優勢了,它除了能支持 CocoStudio 自己所自帶的動畫編輯器,UI 編輯器,它還能支持,Tmx 地圖資源,粒子編輯器的粒子效果資源,聲音資源等~而且不斷擴展中。如下將給出如何在 場景編輯器整合咱們以前所建立的動畫與 UI 界面的資源,來實現咱們一個場景的運行效果。它的步驟以下:
1.啓動場景編輯器,新建一個場景項目。並設置 「畫布」 大小。畫布大小要適量。
2.咱們拖動一個 UI 控到畫布之上,它做爲咱們以前導出的 UI 資源的承載。
3.咱們將以前的 UI 編輯器所導出的資源,導入到當前場景項目中來,導入方式與 UI 編輯器導入資源方式一樣,以下圖:
4.爲 UI 控件的 「文件」 屬性賦值:咱們在資源視圖中找到 UI 編輯器所導出的 UI 資源,其目錄下包含 json 文件資源(如這裏的 「MysticalCard_1.json」),將其拖動到
UI 控件的文件 屬性中去,以下圖所示:
前面的步驟已經將 UI 資源導入場景以內,如今須要添加以前所建立的動畫資源。
咱們以相同的方式導入動畫編輯器所導出的動畫資源文件。
拖動一個骨骼控件至場景界面,以下圖所示。
爲骨骼控件的 「文件」 屬性賦值,其值爲 動畫資源中的 ExportJson(或者 json 文件,這取決於動畫資源的導出方式) 文件。
前面那麼多步驟,使用 CocoStudio 來建立了 UI,動畫,還有一個場景,而要將其運行在實際的項目中,就很是的簡單與方便了,只需幾行代碼,就可以將其加載到項目中去,固然在這以前咱們須要將場景編輯器的資源(場景項目目錄中 「Resources」 目錄,其中將包含一個 json 文件)複製到項目資源目錄中去:
1
2
3
|
// 加載場景資源
CCNode *pNode = CCJsonReader::sharedJsonReader()->createNodeWithJsonFile(
"McScene.json"
);
this
->addChild(pNode);
|
經過 CCJsonReader 來讀取解析 json,從而得到場景中的節點內容,直接添加到當前的場景就能運行。
默認加載的場景資源 動畫 組件是沒有播放的,須要手動獲取動畫組件對象,而後調用其播放方法,固然這個步驟也是很是簡單的:
1
2
3
4
5
6
|
// pNode 爲 以前所獲取的場景資源根節點,經過此節點獲取到動畫對象,獲取方式根據在場景編輯其中設置的層次關係而定
CCComRender *pLoadRender = (CCComRender*)(pNode->getChildByTag(1)->getChildByTag(1)->getComponent(
"CCArmature"
));
CCArmature* armLoad = (CCArmature*)(pLoadRender->getRender());
// 播放動畫
armLoad->getAnimation()->playByIndex(0);
|
使用 CocoStudio 就是爲了幫助咱們快速的創建 UI 原型,而後經過編碼能夠獲取到裏面的任意一個元素對象,並修改其屬性值,調用其方法,正如上面所示播放一個動畫的方法一樣。其步驟以下:
經過 CCJsonReader 類讀取 json 文件,將會自動解析構建對象,返回一個節點 CCNode
任何元素都能經過這個 CCNode 節點,獲取到,它其實就是一個樹,所不一樣的是層級關係(樹節點的位置)
找到須要對象所在的 「樹枝」,後經過 getComponent 方法獲取 所在的 CCComRender 對象
經過 CCComRender 的 getRender 方法獲取最終對象
獲得咱們所須要的具體對象以後,咱們就可以對齊進行草,設置屬性,調用方法等,諸如此類
來自:泰然