是的,它是必要的。此方法在ApplicationDelegate的applicationDidFinishLaunching
方法中調用。例如,在HellowWorld模板中,它在AppDelegate的這一行中被調用: [[director_ pushScene: [HelloWorldLayer scene]]
ccDirector只能運行CCScene,並且一次只能運行一個CCScene。這就是爲什麼CCLayer首先創建一個CCScene,然後將它自己作爲一個孩子添加到它的原因。 作爲替代方案,你也可以繼承CCScene
,並通過覆蓋其init
方法這樣添加CCLayers
和等它:
-(id) init {
if (self = [super init]){
CCLayer *aLayer = [CCLayer node];
[self addChild: aLayer];
....
}
return self;
}
和AppDelegate中的applicationDidFinishLaunching
方法與此[[director_ pushScene: [myScene node]]
替換此行[[director_ pushScene: [HelloWorldLayer scene]]
。
不,不是真的。您也可以[[director_ pushScene:[SomeLayer節點]],只是模板選擇使用場景方法。 CCNode,CCLayer,CCScene幾乎是同一個類(在CCScene.h中讀取註釋),你可以運行沒有場景的圖層。 – 2012-07-22 20:22:22