iOS 7 SpriteKit – 创建游戏菜单/按钮(场景与更多视图控制器)

前端之家收集整理的这篇文章主要介绍了iOS 7 SpriteKit – 创建游戏菜单/按钮(场景与更多视图控制器)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,我已经开始在SpriteKit上开发一个项目,希望能够通过几个按钮来实现一个“主菜单”场景.一个将进入一个选择屏幕,一个是选项等.然后从级别选择屏幕,将有其他几个按钮,当选择将启动游戏并加载所选的级别.

我的问题是:项目应该如何设置?每个屏幕(级别选择,主菜单,选项)应该是自己的场景,还有一个主视图控制器?或者我应该有多个视图控制器的一切?或者也可能是由故事板中的NavigationController控制的每个级别的视图控制器(尽管并不太过分)

在玩了一下并在线阅读后,我注意到我可以使用视图控制器来为我的主菜单设置UIButtons.但是,他们坚持通过精灵套件的场景变化,这不是我想要的.这意味着我必须设置按钮隐藏在显示的每个新场景上,这让我很担心,因为我不确定按钮的确发生了什么.我知道可以从SKSpriteNodes创建按钮(类似于Graf已经发布的类,许多人已经使用过).那是更好的选择吗?而不是在VC上使用UIButton,我会检查在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];
}

这是处理它的正确方法吗?

最终,我想要添加暂停屏幕,屏幕游戏等,并且不确定是否只是交换场景就足够了.此外,我可以从.plist文件加载它们,而不是为每个级别单独实现

我也在考虑一下我是否能够为按钮设置动画效果的事实.我想我希望他们在选择时浮动或变大(当用户触摸它但不放开时),我相信UIButton不会允许它,因为它不是一个SKSpriteNode.

对不起这么长的职位,但希望能提供足够的信息来帮助我,让我在正确的轨道上!谢谢!

解决方法

如果你想要一个简单的菜单,你可以用SpriteKit创建它,但如果你想要一个复杂的菜单,你应该使用UIKit.

假设您想要创建一个具有CoverFlow效果的级别选择菜单,这将很难在SpriteKit上从头开始实现,但是对于UIKit,您可以轻松实现令人惊叹的CoverFlow和滚动效果的图标,如iCarousel.

SKLabelNode暂时只支持一个文本行,所以如果你想在你的游戏中添加一个很长的消息,这将是困难的,但是如果你使用UIKit,你可以使用UITextView来显示你的长消息.

详细的“应用程序采购”菜单将更容易使用UIKit创建.

UIKit会避免你很多头痛,我真的鼓励你使用它.

how should the project be set up?

你只需要1场景

MenuViewController->(Push Segue) – > LevelSelectionController->(Push Segue) – > GameScene

I suppose I’d want them to float around or get bigger when selected (when the user has touched it but not let go),and I believe that a UIButton would not allow it since it isn’t an SKSpriteNode.

您可以使用UIView animateWithDuration或CABasicAnimation为UIButton添加动画

That would mean that I would have to set buttons to be hidden on every new scene displayed

功能解决

- (void)setHidden:(BOOL)hide {
    UIButton *tmpButton = (UIButton *)[self.view viewWithTag:100];
    tmpButton.hidden = hide ? YES : NO;
}

像这样隐藏

[self setHidden:YES];

希望它有帮助

祝你好运!

猜你在找的iOS相关文章