我看到的许多示例 CCLayer 子类的代码如下所示:
+(CCScene *) scene{
CCScene *scene = [CCScene node];
HelloWorldLayer *layer = [HelloWorldLayer node];
[scene addChild: layer];
return scene;
}
谁调用了该方法,它的用途是什么?它需要在那里吗?对将来的目的是否方便?
我看到的许多示例 CCLayer 子类的代码如下所示:
+(CCScene *) scene{
CCScene *scene = [CCScene node];
HelloWorldLayer *layer = [HelloWorldLayer node];
[scene addChild: layer];
return scene;
}
谁调用了该方法,它的用途是什么?它需要在那里吗?对将来的目的是否方便?
是的,它是必需的。该方法在applicationDidFinishLaunching
ApplicationDelegate 的方法中调用。例如在 HellowWorld 模板中,它在 AppDelegate 的这一行中被调用:
[[director_ pushScene: [HelloWorldLayer scene]]
ccDirector 只能运行 CCScene,并且一次只能运行一个 CCScene。这就是为什么 CCLayer 首先创建一个 CCScene,然后将自己作为子节点添加到其中的原因。作为替代方案,您可以通过覆盖它的方法来继承CCScene
并添加您的等:CCLayers
init
-(id) init {
if (self = [super init]){
CCLayer *aLayer = [CCLayer node];
[self addChild: aLayer];
....
}
return self;
}
并在AppDelegate的方法中将这一行替换[[director_ pushScene: [HelloWorldLayer scene]]
为 this 。[[director_ pushScene: [myScene node]]
applicationDidFinishLaunching
我所知道的是不需要它,我想知道同样的事情。我认为这是因为他们想稍微鼓励使用场景。您的场景应该由图层组成,并且您应该在场景之间切换。