成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Cocostudio試用手記:數(shù)據(jù)編輯器和UI編輯器

原創(chuàng)
移動(dòng)開發(fā) Android 游戲開發(fā)
Cocostudio工具集的發(fā)布,進(jìn)一步幫助游戲開發(fā)者減少了開發(fā)周期、提高了開發(fā)效率。作為一個(gè)Cocos2dx的游戲開發(fā)者,無論你是策劃、程序還是設(shè)計(jì)人員都應(yīng)該在一定程度去了解或掌握它。那么作為游戲開發(fā)者,Cocostudio到底用起來怎么樣呢?筆者選擇了數(shù)據(jù)編輯器和UI編輯器來試用一番,談?wù)勛约旱捏w會(huì)。

背景介紹

Cocostudio是觸控科技公司在2013年CocoaChina開發(fā)者大會(huì)中發(fā)布的編輯器工具集。其中包括數(shù)據(jù)編輯器、界面編輯器、動(dòng)畫編輯器和場景編輯器四種工具。可以說這一工具集的發(fā)布,進(jìn)一步幫助游戲開發(fā)者減少了開發(fā)周期、提高了開發(fā)效率。

作為一個(gè)Cocos2dx的游戲開發(fā)者,無論你是策劃、程序還是設(shè)計(jì)人員都應(yīng)該在一定程度去了解或掌握它。

安裝

讀者可以在http://cocostudio.org/下載最新的Cocostudio安裝包,作者在完成本文的時(shí)候Cocostudio已更新至0.1.5版本。(安裝過程略)

使用說明

作為基礎(chǔ)篇,本中主要介紹上面提到的前兩種工具的使用——數(shù)據(jù)編輯器和UI編輯器。

如上圖所示,藍(lán)色圈中區(qū)域和紅色圈中區(qū)域就是我今天和大家分享的兩個(gè)編輯器使用體驗(yàn)。

數(shù)據(jù)編輯器

Cocostudio提供的數(shù)據(jù)編輯器現(xiàn)在的功能主要是在可視化窗口中對特定格式(Excel)進(jìn)行數(shù)據(jù)編輯,然后將編輯好的數(shù)據(jù)導(dǎo)出為我們期望的數(shù)據(jù)格式(Json)以方便游戲中的使用。

選擇Data Editor,我們首先進(jìn)入數(shù)據(jù)編輯器中開始學(xué)習(xí)。

如下圖,是我們的原始數(shù)據(jù)

我們將該數(shù)據(jù)表導(dǎo)入到數(shù)據(jù)編輯器中,如下圖所示

如上圖所示,左上角的紅色框區(qū)域表示我們打開的原始數(shù)據(jù)表名稱,中間紅色區(qū)域表示Excel每個(gè)Sheet中數(shù)據(jù)項(xiàng),而最右側(cè)的紅色區(qū)域則是用來顯示我們在第二紅色區(qū)域選中數(shù)據(jù)項(xiàng)的具體數(shù)據(jù)。

好的,導(dǎo)入數(shù)據(jù)是第一步,接下來我們就可以在選定數(shù)據(jù)項(xiàng)區(qū)域去查看或者編輯我們的數(shù)據(jù)了。

或許有人會(huì)說,這些查看和編輯工作我完全可以在Excel表格中完成,為什么非要使用這個(gè)編輯器呢?客觀來說,這個(gè)編輯器還不夠完善,個(gè)人認(rèn)為比較好的一個(gè)功能是數(shù)據(jù)格式轉(zhuǎn)換——數(shù)據(jù)編輯器支持將當(dāng)前數(shù)據(jù)保存成我們期望的Json格式(具體的話,可以按照需要保存成屬性方式的Json文件或者對象方式的Json文件,后面會(huì)有詳細(xì)說明)。

選擇“文件”下來列表中選擇“導(dǎo)出Json文件”選項(xiàng),可以在如下圖的對話框中選擇我們的需要的格式進(jìn)行導(dǎo)出。

為了明確前面提到的“屬性方式的Json文件”和“對象方式的Json文件”這兩個(gè)概念,我們將之前導(dǎo)入的文件分別進(jìn)行這兩種方式的保存,并做下面圖示的對比。

仔細(xì)觀察圖6和圖7中的數(shù)據(jù),我們會(huì)發(fā)現(xiàn)他們的差異之處,即——屬性方式的Json是每一項(xiàng)都是ID和Name的鍵值對,整體是一個(gè)數(shù)組,數(shù)組中的每一項(xiàng)格式都是一致的;而對象方式的Json則是和原始數(shù)據(jù)存儲(chǔ)方式類似,都是首元素表示這一數(shù)據(jù)表中的表頭,剩下的元素才是真正的數(shù)據(jù)項(xiàng)。相信通過這兩個(gè)文件對比,讀者已經(jīng)可以完全理解他們的區(qū)別。

當(dāng)然這兩種格式的存儲(chǔ)并無優(yōu)劣之差,需要按照我們的需要去是當(dāng)選擇即可。

OK,有了我們保存好的數(shù)據(jù),最后我們就需要在程序中去加載使用它了,有關(guān)Json數(shù)據(jù)的加載并不是Cocostudio工具集的主要內(nèi)容,有需要的讀者可以去網(wǎng)上搜索相關(guān)資料,這一部分內(nèi)容網(wǎng)上資源還是比較豐富的,這里我們只做簡單說明。

  1. std::string tFullPath = cocos2d::CCFileUtils::sharedFileUtils()->fullPathForFilename(tFullName.c_str()); 
  2.  
  3. pBuffer = (char*)(cocos2d::CCFileUtils::sharedFileUtils()->getFileData(tFullPath.c_str(),"r" , &outLength)); 

首先將整個(gè)Json文件加載進(jìn)來,然后按照自定義的關(guān)鍵字去逐一解析即可,如下。

  1. bool parseRet = reader.parse(pBuffer,jsValue,false); 
  2.  
  3. tDictionaryData->mID = jsValue[i]["ID"].asInt64(); 

運(yùn)行程序,我們可以看到數(shù)據(jù)已經(jīng)正常被解析加載了。(下圖是筆者項(xiàng)目中對數(shù)據(jù)編輯器解析的截圖,運(yùn)行結(jié)果無誤)

數(shù)據(jù)編輯器就當(dāng)前版本來說做的還是比較簡單的。也許有人可能會(huì)說,這么簡單的功能,我使用一個(gè)通用讀表器不是更簡便嗎?但是筆者認(rèn)為,使用數(shù)據(jù)編輯器更重 要的意義不是我們上面提到的數(shù)據(jù)的保存和轉(zhuǎn)換,而是它作為正式發(fā)布的工具集之一,是有專門的團(tuán)隊(duì)在維護(hù),另一方面我們也相信,后續(xù)版本會(huì)有更多更好的功能 不斷增加進(jìn)來。

#p#

UI界面編輯器

接下來我們進(jìn)行界面編輯器的學(xué)習(xí),如圖1中選擇藍(lán)色圈區(qū)域進(jìn)入界面編輯器。和第一部分一樣,首先我們對界面編輯器整體做一個(gè)認(rèn)識(shí),見下圖。

紅色區(qū)域是我們可以添加的控件工具欄區(qū)域;

藍(lán)色區(qū)域是我們編輯過程中使用的主區(qū)域,即所有主要的操作結(jié)果都是在這個(gè)區(qū)域中完成的;

黃色區(qū)域是我們編輯之后物理層級(jí)結(jié)構(gòu)展示區(qū)域;

綠色區(qū)域是我們在編輯過程中選中控件的屬性顯示區(qū)域;

藍(lán)綠色(右上角)區(qū)域是我們這個(gè)UI使用的所有資源展示區(qū)域;

紫紅色(右下角)區(qū)域是上邊某一資源圖片被選中時(shí)候的預(yù)覽圖顯示區(qū)域。

有了對編輯器整體上的認(rèn)識(shí)之后,我們就可以使用它了。如果沒有意境編輯好的UI文件供我們加載,那么我們首先需要?jiǎng)?chuàng)建一個(gè)項(xiàng)目,如下圖。

在彈出的對話框中,我們可以根據(jù)需要選擇項(xiàng)目名稱和項(xiàng)目存儲(chǔ)路徑。

這時(shí)我們會(huì)在編輯使用的主區(qū)域出現(xiàn)一個(gè)用黑框表示的編輯區(qū)域如下圖。

這個(gè)黑色編輯區(qū)域大小是與我們期待的分辨率一致的,那么肯定有人會(huì)問——編輯器怎么會(huì)知道我們期望的分辨率是多大呢,如果這個(gè)分辨率與我們期望的分辨率大小不一致怎么辦呢?

大家注意看編輯器左上角有一個(gè)文本標(biāo)志“畫布”后面跟隨一個(gè)下拉列表框選項(xiàng),我們可以通過這里來告知或修改我們正在編輯UI的分辨率大小。

設(shè)計(jì)者為我們提供了多種分辨率(包括:480X320、960X640、1024X768以及以上幾種分辨率的豎屏結(jié)構(gòu)),隨著我們選擇的不同,前面提到的黑色編輯區(qū)域也隨之變化。特別需要提到的,在下拉列表最下方,為我們提供了自定義設(shè)置,大大方便了我們對不同分辨率的需求。

這個(gè)時(shí)候我們相當(dāng)于有了自己一張畫布,不過僅有畫布還是不夠的,我們還需要畫筆。圖15中是我們的控件編輯欄,其中依次包括文本按鈕、輸入框、文本區(qū)、數(shù)字標(biāo)簽、滑動(dòng)條、按鈕、進(jìn)度條、曾容器、圖片、復(fù)選框、文本框、滾動(dòng)條等,相信后續(xù)還會(huì)有新的控件會(huì)被加入進(jìn)來。

選中上面圖中的黑色畫布,開始添加控件。

如上圖中方式,我們可以通過現(xiàn)有控件拼接出自己需要UI布局來。如下圖就是筆者創(chuàng)建的一個(gè)UI布局。

 

這些控件具有一定的層級(jí)關(guān)系,我們可以在前面提到的對象結(jié)構(gòu)這個(gè)View中看到,如下圖所示。

OK,保存項(xiàng)目,并打開之前設(shè)定的路徑,我們看到如下圖的結(jié)果。

這里需要說明的是,xml文件表示的是我們這個(gè)UI工程相關(guān)的信息,如上圖,這個(gè)xml文件中保存了包括項(xiàng)目名稱、UI布局結(jié)構(gòu)文件、使用資源的路徑、以及工程使用的分辨率等等信息。

最后,根據(jù)xml文件中的記錄,我們打開Resource目錄、如下圖所示。

至此,我們的UI界面編輯工作就完成了。那么有了這個(gè)UI布局文件之后,我們應(yīng)該在程序中如何使用它呢?難道我們要自己去實(shí)現(xiàn)解析、UI層級(jí)管理、事件響應(yīng)?當(dāng)然不是,我們Cocostudio開發(fā)者已經(jīng)為我們提供了上述問題的解答方案——在Cocostudio官網(wǎng)上,可以找到對應(yīng)解析器的代碼(CocoGUILIB.zip)。

首先我們創(chuàng)建一個(gè)新的工程——UIEditorDemo,將CocoGUILIB中有關(guān)UI解析相關(guān)的代碼導(dǎo)入我們上面創(chuàng)建的UIEditorDemo工程中(并按照編譯報(bào)告添加對應(yīng)的頭文件路徑即可)。在程序需要解析加載UI的地方,添上如下代碼。

  1. COCOUISYSTEM->resetSystem(scene); 
  2.  
  3. COCOUISYSTEM->replaceUISceneWithFile(this"NewProject.json", 1, truetruetrue); 

下面就是見證奇跡的時(shí)刻——

運(yùn)行程序,我們看到如上圖的運(yùn)行結(jié)果,這不就是我們前面編輯的UI界面嗎。不錯(cuò),加載就是這么簡單。

界面編輯器為開發(fā)者也提供了很大的方便,首先,工具集將界面的編輯工作可視化,從一定程度上也可以說做到了“所見即所得”。這使得編輯界面從抽象化到具體化,也將這一編輯工作簡單化,可以由非程序人員來完成界面的編輯工作,大大提高了開發(fā)效率。

其次,就如上面提到的一樣,界面的加載也十分簡單。比較重要的一點(diǎn)是,編輯出來界面的層級(jí)關(guān)系與點(diǎn)擊響應(yīng)的層級(jí)關(guān)系一般來說是一致的,也就是說,我 們在編輯界面的時(shí)候添加的兩個(gè)界面在物理層級(jí)上如果存在父子關(guān)系,那么它們的點(diǎn)擊事件在邏輯傳遞的過程中總是誰在最上面誰就先獲取到這個(gè)事件。這就更方便 了我們的理解和操作。這樣,從很大程度上來說降低了我們開發(fā)的難度。

最后,界面編輯器的使用使得界面的布局和功能開發(fā)上獨(dú)立開來,凡是有游戲開發(fā)經(jīng)驗(yàn)的人應(yīng)該能夠明白這一點(diǎn)給工作帶來的好處——當(dāng)界面布局的某些屬性 (比如某個(gè)控件的坐標(biāo)等)改變時(shí),只要不修改控件的名字,我們并不需要修改代碼并且重新編譯程序,直接更新界面資源即可。這就在一定程度上降低了界面相關(guān) 代碼返工的可能,縮短了開發(fā)周期。

總結(jié)

總體來說,Cocostudio工具集的確為游戲開發(fā)者提供了很大的方便,其中的一些原因上面也講到了,不過,CocoStudio目前還并不完善,在使用過程中出現(xiàn)過一些Bug,這些是亟待解決的問題。不過官方更新的速度也很快,對于用戶反饋的反應(yīng)也很及時(shí),可見官方對這款工具集也傾注了很多的心血,它的未來值得期待,在此之前,我們對這款工具也要好好熟悉并且善加利用。

責(zé)任編輯:徐川 來源: 51CTO
相關(guān)推薦

2013-06-18 00:45:23

CocoStudio工Cocos2d-x

2011-01-10 16:17:49

2010-03-24 09:20:07

CentOS vi編輯

2013-06-18 00:58:54

CocoStudio工Cocos2d-x

2011-03-22 13:54:57

UbuntuPHP編輯器

2018-09-25 09:25:11

Vim編輯器命令

2013-06-03 16:45:54

手游開發(fā)CocoStudio下工具

2022-05-31 14:46:02

Ruby編碼線上編輯器

2009-12-04 17:07:49

SlickEdit

2020-10-14 14:00:39

VIM編輯器

2023-02-06 16:59:57

Canvas編輯器

2018-05-11 14:59:21

LinuxVim編輯器

2014-06-18 10:53:44

BootstrapBootstrap U

2025-02-05 12:01:35

屬性編輯器Web

2019-06-10 11:06:04

JavaScript編輯器HTML5

2020-12-23 22:25:11

Vi文本編輯器Unix

2009-11-26 17:37:37

Linux編輯器

2022-12-02 07:24:46

2020-09-27 08:43:33

MuPythonturtle 模塊

2011-09-07 09:30:46

Lua編輯器Scite
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 浴室洗澡偷拍一区二区 | 欧美性生活一区二区三区 | 久热久热 | 天天天天天操 | 欧美日韩中文在线 | 成人国产精品久久久 | 欧洲妇女成人淫片aaa视频 | 96av麻豆蜜桃一区二区 | 日韩精品激情 | 国产美女永久免费无遮挡 | 精品乱人伦一区二区三区 | 国产在线资源 | 三级成人在线观看 | 国产一区二区小视频 | 天天操天天玩 | 久久高清免费视频 | 成人免费观看男女羞羞视频 | 麻豆精品一区二区三区在线观看 | 亚洲视频欧美视频 | 四虎av电影 | 狠狠干狠狠操 | 亚州午夜精品 | 国产精品伦一区二区三级视频 | 中日韩欧美一级片 | 99久久精品国产一区二区三区 | 午夜视频一区 | 干一干操一操 | 九九九久久国产免费 | 久视频在线 | 精彩视频一区二区三区 | 亚洲成人网在线 | 国户精品久久久久久久久久久不卡 | 亚洲一区二区三区四区五区午夜 | 亚洲国产成人精品女人久久久 | 国产亚洲精品一区二区三区 | 久久91| 日韩和的一区二区 | 国产99久久 | 成人国产精品久久久 | 亚洲免费在线 | 免费大黄视频 |