【发布时间】:2015-08-08 05:53:29
【问题描述】:
我使用 spritekit 和 swift 在 xcode 中创建了一个非常简单的游戏。现在我想要一个在我第一次启动应用程序时显示的主菜单。然后我想要一个按钮,当点击它时,将开始游戏。有没有办法做到这一点?我应该使用故事板吗?非常感谢! :)
【问题讨论】:
-
Main Menu In Swift的可能重复
我使用 spritekit 和 swift 在 xcode 中创建了一个非常简单的游戏。现在我想要一个在我第一次启动应用程序时显示的主菜单。然后我想要一个按钮,当点击它时,将开始游戏。有没有办法做到这一点?我应该使用故事板吗?非常感谢! :)
【问题讨论】:
通过使用SpriteKit,您可以这样做:
在您的GameViewController.swift 中,将您的代码替换为以下代码:
import UIKit
import SpriteKit
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//load your GameScene from viewController
let scene = GameScene(size: view.bounds.size)
let skView = view as! SKView
skView.showsFPS = false
skView.showsNodeCount = false
skView.ignoresSiblingOrder = true
scene.scaleMode = .ResizeFill
skView.presentScene(scene)
}
override func prefersStatusBarHidden() -> Bool {
return true
}
}
此代码将在您开始游戏时加载 GameScene。
将此代码添加到您的 GameScene.swift 类中:
import SpriteKit
class GameScene: SKScene {
//create playbutton instance
let playButton = SKSpriteNode(imageNamed: "play_unpresed")
override func didMoveToView(view: SKView) {
backgroundColor = UIColor.greenColor()
addPlayButton() //add playbutton
}
func addPlayButton(){
playButton.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
playButton.xScale = 0.2
playButton.yScale = 0.2
self.addChild(playButton)
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch in (touches as! Set<UITouch>){
let location = touch.locationInNode(self)
//this will detect touch on play button
if self.nodeAtPoint(location) == self.playButton {
//it will transits to the next scene
let reveal = SKTransition.flipHorizontalWithDuration(0.5)
let letsPlay = playScene(size: self.size)
self.view?.presentScene(letsPlay, transition: reveal)
}
}
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
这将加载一个带有一个按钮的场景,当你按下一个按钮时,它会带你到你的playScene,为此你必须通过点击 Command + N 然后点击 iOS Source -> Cocoa Touch 类来创建一个新文件 - > 下一步 -> 添加类名 playScene -> SKScene 的子类 -> 并创建它。
在您的playScene.swift 中添加import SpriteKit
查看THIS 示例项目了解更多信息。
HERE 是 spriteKit 的简单教程。
【讨论】:
或者,您可以使用情节提要。在M.W.E. 中获取另一个 S.O.质疑他们是否设置了基本的“菜单”。
在你的情况下,你会做的是:
图片
【讨论】: