是的,它是必要的。此方法在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