2009-03-05 103 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页面”。

在这两个(场景和图层)上,您可以添加更多图层作为孩子。 所以你可以堆叠尽可能多的图层,只要你想。这实际上是一种启用多点触控的好方法 - 通过为每个对象创建一个图层并在这些图层上启用触控。底线,他们做的方式是对的,所以你也应该使用图层并使用+场景方法将主图层附加到场景中。

希望这会有所帮助。 对不起,我的英文。不是原生的。