我看到的许多示例CCLayer子类的代码如下所示:
+(CCScene *) scene{
CCScene *scene = [CCScene node];
HelloWorldLayer *layer = [HelloWorldLayer node];
[scene addChild: layer];
return scene;
}谁调用了这个方法,它的作用是什么?它需要出现在那里吗?对于将来的一些目的,它是否方便?
发布于 2012-07-21 01:59:56
是的,它是必要的。此方法在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: [HelloWorldLayer scene]]替换为此[[director_ pushScene: [myScene node]]。
发布于 2012-07-21 01:36:01
我只知道这是不必要的,我也想知道同样的事情。我想这是因为他们想鼓励场景的使用。您的场景应该由层组成,并且您应该在场景之间切换。
https://stackoverflow.com/questions/11584249
复制相似问题