日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CocosBuilder 完全攻略

發(fā)布時間:2023/12/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CocosBuilder 完全攻略 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?


原文地址:http://blog.sina.com.cn/s/blog_6084f58801013voy.html

?歡迎加入開發(fā)群:285275050?

??????????????????????. .

?????????????????????'.-:-.`?

?????????????????????'??:??`

??????????????????.-----:????

????????????????.’???????`.

??????????,????/???????(o) \??

??????????\`._/??????????,__)

??????~~~~~~~~~~~~~~~~~~~~~~~~~~~~

歡迎加入開發(fā)群:285275050?

本文翻譯自:http://www.raywenderlich.com/23996/introduction-to-cocosbuilder

翻譯:彈涂魚

CocosBuilderinterface builder?類似,是cocos2d下簡單快速進(jìn)行精靈,層,場景布局的工具。

CocosBuilder可以快速完美的進(jìn)行菜單和交互場景的布局,如果手動去做,這往往讓人頭疼。

CocosBuilder之前,通過cocs2d為游戲創(chuàng)建基本的接口確實很痛苦。當(dāng)添加一個新的菜單或按鈕到你的游戲時,你通常這樣來做:

l??做個猜測:我認(rèn)為這個按鈕的大小是5050”

l??編譯運行:看來有點不太正確

l??猜測調(diào)整:“6050或許更好

l??整理重復(fù):還他媽的不對,啊!!!!!


?

?????CocosBuilder?簡化了所有這些步驟,包括重復(fù)迭代設(shè)置檢測精靈位置,這樣使你關(guān)注的焦點移動到時了游戲邏輯,而不是在界面設(shè)計上令你費盡周折,讓你成為一個更加高效的碼工。這當(dāng)然是件好事,不是嗎?


這個初級教程意在教會你使用CocosBuilder去創(chuàng)建簡單界面,你將學(xué)會如何如何設(shè)置菜單,按鈕,粒子系統(tǒng),基礎(chǔ)關(guān)卡布局,將界面與代碼關(guān)聯(lián)。

在這里我們將重新構(gòu)建Cat Jump這個游戲?,它最初由?Ray and Rod’s?Cocos2D via Minigames工作室開發(fā),當(dāng)然,此次構(gòu)建?我們將節(jié)約大量的代碼。你將看到CocosBuilder是如何節(jié)約你的時間和代碼的。

?

我們來以簡單的方式來構(gòu)建一些界面。

?

Cat Jump簡介

Cat Jump描述了一只貓的倒霉一天。當(dāng)它走在路上思考工作時,突然所有的汽車,卡車,甚至是騎在自行車上的小孩子都朝它駛來。

?

下圖是游戲中的一張預(yù)覽圖:


可憐的小貓只有9條命,你的目標(biāo)是使你的小貓通過躲避障礙物來來活的盡可能時間長。

為了對我們要做的游戲有一個大致的了解,從這里下載沒有使用過CocosBuilderCatJump版本(鏈接我不加了)。運行并玩一會,挺有趣的。

玩了一會游戲?,看了一遍代碼,你會注意到有許多硬編碼的偏移用于設(shè)置菜單,文本條,和精靈的位置。這確實很痛苦,不過接下來你將學(xué)會一種簡單的方式。

?

開始教程前,通過以下步驟來重新構(gòu)建項目:

l??CocosBuilder中重新構(gòu)建主菜單場景。剛剛主菜單場景中的布局通過硬編碼實現(xiàn),現(xiàn)在你可刪除那些代碼,這些工作就交給CocosBuilder

l??添加選項場景。選項場景包含三個按鈕用于設(shè)置難度:簡單,中等,困難。點擊每個按鈕都會在代碼中調(diào)用相應(yīng)的觸發(fā)事件。

l??添加關(guān)于場景。在關(guān)于場景添加一個小的粒子系統(tǒng),通過CocosBuilder你不用編寫一行代碼。

l??通過CocosBuilder重新構(gòu)建游戲場景。你將通過使用CocosBuilder來代替手工設(shè)置精靈位置。

l??通過CocosBuilder重新構(gòu)建游戲結(jié)束場景。

?

最后,你將學(xué)習(xí)如何阻止或解決CocosBuilder中一些問題的技巧。使用CocosBuilder不易出錯,不過我們?nèi)匀灰荛_一些障礙,有一點像騎三輪車的小孩子。你需要雷達(dá)去檢測,以便節(jié)約我們的后續(xù)時間。

?

開始CocosBuilder

?

如果沒準(zhǔn)備好,那么先下載CocosBuilder,確保下載最新版本,寫本文時使用的2.1版本,在下載界同時下載實例文件。


從歸檔文件解壓,并把它拷貝到應(yīng)用程序文件夾。

在開始使用CocosBuilder創(chuàng)建工程前為你的工程創(chuàng)建一個文件夾,在這里將存儲游戲的資源文件(resources/assets)。

注意:你也可以創(chuàng)建一個資源文件夾的引用,這個文件夾可以在你硬盤的任意位置,但是我發(fā)現(xiàn)創(chuàng)建類似這樣的文件夾結(jié)構(gòu)可以讓我知道所有我的文件所在同時保持合理組織?。

?

在桌面創(chuàng)建一個文件夾CocosBuilderFiles,在此目錄里創(chuàng)建兩個子目錄ResourcesScenes。


Resource文件夾包含游戲中用到的所有資源文件。如果你喜歡你可以從CatJump中拷貝所有資源文件,當(dāng)然為了簡單我把用到的資源打成zip包(鏈接原文中找),下載,解壓,拷貝到資源文件夾。

?

打開CocosBuilderFiles在菜單中選擇File\New\New Project,命名工程為CatJump并保存到CocosBuilderFiles目錄。



現(xiàn)在工程已經(jīng)創(chuàng)建,你會在CocosBuilder左側(cè)滑動條中看到ResourcesScenes文件夾。當(dāng)然還有一個CocosBuilder自動創(chuàng)建的一個文件夾ccbResources,在它旁邊你會看到一個新的文件HelloCocosBuilder.ccb,雙擊看到里面的內(nèi)容。

?

它是只包含了一個Label的基礎(chǔ)布局,顯示著Hello CocosBuilder

?

不用擔(dān)心,你的Cat Jump界面也只比這難一點。

?

?

無需代碼!

我們以創(chuàng)建CatJump的主場景開始,這個場景有三個按鈕:

l??開始按鈕開始游戲

l??選項設(shè)置游戲難度

l??關(guān)于介紹玩家如何進(jìn)行游戲

首先,你需要刪除HelloCocosBuilder.ccb文件,它只是程序默認(rèn)創(chuàng)建的場景。

注意:你可能覺得通過CocosBuilder?工程去刪除文件很直接,但我沒能直接刪除。我不得不采取關(guān)閉CocosBuilder,在Finder中刪除HelloCocosBuilder.ccb。然后重新打開CocosBuilder。如果有人知道簡單的方式,請在論壇中回帖。

?

接下來,選擇File\New\New File,在下拉菜單中從菜單項中選擇iPhone Landscape??iPhone 5 Landscape,另外確保根類型為CCLayer。



點擊Create,命名文件為MainMenuScene,保存到Scenes文件夾。

此時工程面板看起來像這樣:



這時你已經(jīng)創(chuàng)建了你的第一個場景,那么我們來添加一些精靈吧。

點擊工具條的CCSprite按鈕。暗示:下圖圓圈標(biāo)出。


這將添加一個新的精靈到場景中。

?

選擇新添加的精靈,使它的frameTitle_catjump.png綁定。在右側(cè)的滑動條會顯示出當(dāng)前選中對象的屬性。具體操作如下圖:


通過拖拽使精靈劇中,或者在右側(cè)滑動條中交Anchor PointXY值設(shè)置為0。

注意到只有當(dāng)位置設(shè)置為左下角時上述操作才會生效,當(dāng)位置改變時,你不得不重新設(shè)置XY的位置。試試設(shè)置其他值的效果。

?

接下來我們?yōu)閳鼍疤砑影粹o。

點擊下圖中的CCControl按鈕添加?一個按鈕到屏幕中。



新按鈕有一個漂亮的背景,這張背景圖可以在ccbResources文件夾找到。通過右側(cè)滑動條將標(biāo)題改為Play.





調(diào)整按鈕位置,可以通過拖動或右側(cè)滑動條設(shè)置屬性來調(diào)整位置。重復(fù)上述操作添加兩個按鈕,一個為Option,一個為About。最終效果如下圖



第一個場景布局完成了。

?

連接場景到類!

?

開始工作前先來進(jìn)行一些調(diào)整。當(dāng)你通過CocosBuider?創(chuàng)建的CCLayer來設(shè)置場景時,如果你想使場景層為自定義類,你需要為CocosBuilder指明那個類。

例如,如果你用MainMenuScene初始化了一個場景并且你希望它的場景層是你自定義的類,你需要在CocosBuilder的代碼連接區(qū)指明類名。

選中MainMenuScene.ccb,在TimeLineCCLayer根節(jié)點。



在右側(cè)代碼連接區(qū)設(shè)置自定義類為MainMenuLayer,這樣當(dāng)你初始化場景時,CocosBuilder會尋找名叫MainMenuLayer的類去初始化場景層。接下來是要發(fā)布CocosBuilder界面文件,點南擊File,選擇Publish,這將在場景目錄創(chuàng)建一個名字為MainMenuScene.ccbi的文件。

CocosBuilder介紹到這,接下來介紹如何在Cocos2D下工作。

?

編碼時間!

首先確保你安裝了最新的Cocos2D,寫本文時是2.1版。

Xcode里創(chuàng)建一個新的Cocos2D工程,并命名為CatJump,設(shè)置目標(biāo)設(shè)備為Iphone




創(chuàng)建工程并保存到硬盤。

接下來創(chuàng)建一個新的文件夾Scenes,將后綴為CCBI的文件拷貝到此文件夾,確保“Copy items to destination group’s folder (if needed)”為選中狀態(tài),另外?CatJump Target也為選中狀態(tài)。

現(xiàn)在需要添加CCBReader文件夾到你的工程中,確保“Copy items to destination group’s folder (if needed)”為選中狀態(tài)。對CCControlExtension執(zhí)行相同操作。

CatJump下創(chuàng)建新目錄Layers,創(chuàng)建一個新的類MainMenuLayer使它繼承自CCLayer。在開始寫代碼前在AppDelegate.m文件中添加頭文件:

import “CCBReader.h”

另外將application: didFinishLaunchingWithOptions:中的本行

[director runWithScene: [IntroLayer scene]];

?

替換為:

[director runWithScene: [CCBReader sceneWithNodeGraphFromFile:@"MainMenuScene.ccbi"]];

?

上面就是你要運行由CocosBuilder創(chuàng)建的場景所需要的所有代碼,CCBReader會解析MainMenuScene.ccbi并創(chuàng)建場景。

在運行這個程序前還需要最后一步,還記在CocosBUilder中添加到時場景中的背景圖和來自ccbReource文件夾下的按鈕圖片嗎?

所有這些文件還沒有添加?到你的工程中,你需要添加?這些文件到你的工程,否則程序會崩潰。

將下圖中的文件拷貝到你的工程,記住勾選Copy items to destination group’s folder (if needed)。



現(xiàn)在編譯工程,如果?在編譯文件CCBReader.m時出現(xiàn)?錯誤,用下面這行代碼替換錯誤行。

運行程序,如果一切OK,你會看到:


主要事件!

?

恭喜,你以經(jīng)有了一個通過CocosBuilder布局的場景,并且加載場景只需一行代碼。但是,當(dāng)用戶點擊按鈕時你如何去捕捉事件。



事實上,CocosBuilder簡化了這個過程。它可以指定當(dāng)用戶點擊按鈕時要調(diào)用的方法名,你也可以指定調(diào)用方法時所需要的觸發(fā)事件(功過?checkbox)。

?

我們來為MainMenuScene添加這個功能。打開MainMenuScene.ccb,選中Play按鈕,在右側(cè)面板的CCNode部分設(shè)置其Tag屬性為1。接下來CCControl部分,在Selector對應(yīng)的文本框中填寫要被調(diào)用的方法名-- buttonPressed:。同時設(shè)置Target選項為?Document root。(又到了與層連接的時候了)



以同樣的方式設(shè)置其他兩個按鈕,不同的是設(shè)置OptionsTag2?AboutTag3。

?

現(xiàn)在你已經(jīng)為你的按鈕綁定了事件,保存更改并發(fā)布,將發(fā)布的文件拷貝到Xcode

接下來,打開MainMenuLayer.m?,添加以下頭引用。

#import "CCControlButton.h" #import "CCBReader.h"

同時在#import下添加以下宏定義

#define PLAY_BUTTON_TAG 1

#define OPTIONS_BUTTON_TAG 2

#define ABOUT_BUTTON_TAG 3

?

接下來在 MainMenuLayer.m 中添加 buttonPressed: 方法



編譯運行,現(xiàn)在你的主菜單場景已經(jīng)可能實現(xiàn)功能。



現(xiàn)在點擊按鈕程序會崩潰,因為其他場景還沒有創(chuàng)建。下一步我們將去創(chuàng)建。

?

不選難的!

?

難度選擇場景也有三個按鈕,這里的三個按鈕用于設(shè)置游戲難度,但是還要有一個返回按鈕。創(chuàng)建一個場景命名為OptionsScene,保存到Scenes目錄。

添加三個按鈕分別為EasyMediumHard,并設(shè)置其Tag分別為123。接著注冊事件difficultyButtonPressed并設(shè)置目標(biāo)為Document Root

注意:什么是Document Root?它代表Time Line下的根節(jié)點。一會你會設(shè)置根節(jié)點為自定義類。這意味著OptionsLayer就是根節(jié)點。

布局如下:


現(xiàn)在添加?返回按鈕。這次我們用CCMenu的菜單項來代替CCControlButton來創(chuàng)建返回按鈕。

單擊工具條的CCMenu按鈕:


將創(chuàng)建的CCMenu節(jié)點添加到OptionsScene Layer,現(xiàn)在點擊?CCMenuItemImage

按鈕來添加 ? 一個 CCMenuItemImage 按鈕




像你對MainMenuScene的操作,為OptionsScene添加自定義類。命名為


創(chuàng)建OptionsLayer并在OpetionsLayer.m


添加粒子火焰!

?

點擊工具條的CCParticleSystemQuad按鈕


最終效果圖如下:


同上,綁定自定義類。

?

最后介紹關(guān)于精靈的綁定,由于原文比較啰唆,這里我只給出綁定過程。

選中精靈:在右側(cè)面板中找到


選中Doc root var,在文本框中輸入對應(yīng)精靈的變量名:




ok,關(guān)于CocosBuilder的使用就介紹到這。

?

翻譯:彈涂魚

PS :歡迎加入開發(fā)群: 285275050

總結(jié)

以上是生活随笔為你收集整理的CocosBuilder 完全攻略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。