所以,我已经开始在SpriteKit上开展一个项目了,我希望能够用几个按钮实现一个"主菜单"场景.一个人将进入一个关卡选择屏幕,一个是选项等.然后从关卡选择屏幕中,会有几个其他按钮,当选择它们时将启动游戏并加载所选关卡.
我的问题是:如何建立项目?每个屏幕(级别选择,主菜单,选项)是否应该是自己的场景并且有一个主视图控制器?或者我应该有多个视图控制器吗?或者也许每个级别的视图控制器(虽然这没有多大意义)由故事板中的NavigationController控制?
在玩了一下并在线阅读之后,我注意到我可以使用视图控制器为我的主菜单添加UIButtons.然而,他们坚持通过精灵套件场景变化,这不是我想要的.这意味着我必须设置按钮隐藏在每个显示的新场景上,这让我担心,因为我不确定按钮究竟发生了什么.我知道可以用SKSpriteNodes创建按钮(类似于Graf发布的类和许多人使用的类).这是更好的选择吗?我没有在VC上使用UIButtons,而是检查touchBegan方法和touchesEnded方法是否触摸了该按钮节点,如下所示:
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:location];
if ([node.name isEqualToString:@"scene button"])
{
LevelScene *scene = [LevelScene sceneWithSize:self.view.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[self.view presentScene:scene];
}
Run Code Online (Sandbox Code Playgroud)
这是处理它的正确方法吗?
最终我希望能够添加暂停屏幕,屏幕上的游戏等,并且不确定是否只需交换场景就足够了.此外,我可以从.plist文件加载它们,而不是为每个级别单独实现
我也在考虑是否可以为按钮设置动画.我想我会希望它们在选中时浮动或变大(当用户触摸但不放手时),我相信UIButton不会允许它,因为它不是SKSpriteNode.
很抱歉这么长的帖子,但希望能提供足够的信息来帮助我,让我走上正轨!谢谢!