使用 cocos2d 进行 iPhone 游戏开发,我对 Layer 和 Scene 感到困惑。例如,我的简单游戏有几个“UI 页面”,如主菜单、高分、游戏板等。
那么我应该为每个“UI 页面”使用图层还是场景,为什么?
使用 cocos2d 进行 iPhone 游戏开发,我对 Layer 和 Scene 感到困惑。例如,我的简单游戏有几个“UI 页面”,如主菜单、高分、游戏板等。
那么我应该为每个“UI 页面”使用图层还是场景,为什么?
查看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 页面”,但您将图层附加到新场景并替换导演中的当前场景。
这简单:
在这些示例中,他们有一个 CCLayer 和一个 +scene 方法,该方法可以创建一个新场景并将图层附加在其上。因为图层不是您命名的“UI 页面”。一个场景是一个“UI Page”。
在两者(场景和图层)上,您都可以添加更多图层作为子图层。因此,您可以根据需要堆叠任意数量的层。这实际上是启用多点触控的好方法 - 通过为每个对象创建一个图层并在这些图层上启用触控。最重要的是,他们这样做的方式是正确的,因此您也应该使用图层并使用 +scene 方法将主图层附加到场景。
希望这可以帮助。对不起我的英语不好。不是本地人。
你真的不需要使用层,除非你得到某种触摸输入(因为它是 Cocos2D 中唯一实现 TouchEventsDelegate 的类)。如果您将他们的代码直接放在没有图层的场景中,这些演示可以正常工作,所以据我所知,他们这样做只是为了演示其他 Cocos2D 功能(添加子项、设置位置等)。