2009-12-23 237 views
25

我剛剛讀完一些cocos2d的文檔,而據我瞭解一個背景圖片添加到你必須做一些像層:Cocos2d爲圖層添加背景圖片?

Sprite * bg = [Sprite spriteWithFile:@"Background.png"]; 
[layer addChild:bg z:0]; 

Allthough至於我的測試中去,你可以只直接精靈加入到這樣的情景:

@implementation IntroScene 
- (id) init { 
self = [super init]; 
if (self != nil) { 
    Sprite * bg = [Sprite spriteWithFile:@"Background.png"]; 
    [bg setPosition:ccp(240, 160)]; 
    [self addChild:bg z:0]; 
    [self addChild:[MenuLayer node] z:1]; 
} 
return self; 

}

是什麼這兩個選項之間的區別,什麼是更好的方法來設置一個層背景?任何幫助將不勝感激。

+0

請記住,Sprite從此成爲CCSprite。是的,忍受那種想法丹亞爾。 – 2011-10-26 05:57:00

回答

25

你不需要有圖層,但它們很方便。將這些圖層視爲分組精靈(視覺和組織方式)的一種方式。您可能希望將您的背景圖片分組爲一個圖層,並將遊戲中的所有敵人作爲另一個圖層。這可以讓你更清楚地處理每一套。例如您可以刪除特定圖層,而不是查找所有敵人並將其刪除。

如果有幫助,可以使用Photoshop中的圖層或圖形編輯程序進行操作。 cocos2d中的圖層工作方式類似。

對於簡單的場景,將背景添加到圖層或場景中並沒有多大區別。但是不需要很長時間,分層的好處就開始了。

+0

謝謝你爲我清理它。 – 2009-12-23 21:28:44

8

此外,圖層控制繪圖順序(超過和超過任何層間z排序)。例如,我有一個背景層,一個火花層,一個UI層等(簡體)。但是這可以讓我確定我的用戶界面的東西總是高於任何遊戲的東西(火花層),並且高於背景。

如果你的遊戲只做疊加渲染,繪製順序並不重要。 :)

- 大衛

4

現場一塊黑板,層是一個網頁...消息是頁面上寫道,但是,如果你願意,你可以在黑板上寫字。如果你想擦除所有新的。

0

在cocos2d中,我們可以在任何節點上添加任何節點。但這取決於層級。

您可以在場景中添加圖層。如果您需要相同的屬性或查找添加到CCScene中的所有圖層,則可以在CCScene中添加這些圖層(如第二種情況)。但是如果您想在每個圖層上具有不同的功能,請將這些添加到CCLayer中。

CCLayer是爲了某種目的而將一組節點/精靈分組的。例如,您可以在暫停遊戲後添加包含選項的圖層,或者在屏幕上始終在屏幕上顯示某種類型的HUD圖層以及一些滾動圖層(比較某些滾動平臺遊戲)。

最後,您甚至可以在CCScene上的CCNode,在另一個圖層上的一個圖層,甚至是CCSprite上的CCNode。 但是在cocos2d中繪製圖形上下文的順序不同。

希望你有所不同。

祝你好運!