2009-03-05 115 views
5

使用cocos2d進行iPhone遊戲開發時,我對圖層和場景之間感到困惑。 例如,我的簡單遊戲有幾個「UI頁面」,如主菜單,高分榜,遊戲板等。用於iPhone遊戲開發的Cocos2d中的圖層vs場景

所以我應該爲每個「UI頁面」使用圖層或場景,爲什麼?

回答

4

審查SpritesDemo.m/.H,它會出現,他們使用的圖層,然後創建新的場景,連接層,然後更換上導演

@interface SpriteDemo : Layer 
@interface SpriteManual : SpriteDemo 

的代碼,然後做了現場以下:

-(void)nextCallback:(id)sender { 
    Scene *s = [Scene node]; 
    [s add: [nextAction() node]]; 
    [[Director sharedDirector] replaceScene s]; 
} 

因此,簡而言之,在回答你的問題將是「兩個」,您可以使用圖層來表示你的實際「UI頁面」,但你附加層到一個新的場景替換當前導演的場景。

+0

你幾乎需要重寫CCLayer函數而不是CCScene。用這種方法你根本不需要重寫CCScene函數。 – Emadpres 2013-02-17 16:38:59

0

除非獲得某種觸摸輸入(因爲它是Cocos2D中唯一實現TouchEventsDelegate的類),否則不需要使用Layer。如果您將代碼直接放在沒有圖層的場景中,演示可以正常工作,因此據我所知,他們只是爲了演示其他Cocos2D功能(添加子項,設置位置等)。

2

這很容易:

他們在這些例子CCLayer,這讓新的場景,並在其上附着的一層A +場景方法。因爲圖層不是您命名的「UI頁面」。場景是一個「UI頁面」。

在這兩個(場景和圖層)上,您可以添加更多圖層作爲孩子。 所以你可以堆疊儘可能多的圖層,只要你想。這實際上是一種啓用多點觸控的好方法 - 通過爲每個對象創建一個圖層並在這些圖層上啓用觸控。底線,他們做的方式是對的,所以你也應該使用圖層並使用+場景方法將主圖層附加到場景中。

希望這會有所幫助。 對不起,我的英文。不是原生的。