我使用SpriteKit和Swift在Xcode中创建了一个非常简单的游戏。现在我想要创建一个主菜单,以便当游戏打开时,会有一些按钮进入设置或开始游戏。但我不知道该如何实现。我应该使用故事板吗?如果是这样,我该如何在Xcode中实现它。谢谢大家 :)
我使用SpriteKit和Swift在Xcode中创建了一个非常简单的游戏。现在我想要创建一个主菜单,以便当游戏打开时,会有一些按钮进入设置或开始游戏。但我不知道该如何实现。我应该使用故事板吗?如果是这样,我该如何在Xcode中实现它。谢谢大家 :)
Swift 3.0
import SpriteKit
class MenuScene: SKScene {
var playButton = SKSpriteNode()
let playButtonTex = SKTexture(imageNamed: "play")
override func didMove(to view: SKView) {
playButton = SKSpriteNode(texture: playButtonTex)
playButton.position = CGPoint(x: frame.midX, y: frame.midY)
self.addChild(playButton)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
let pos = touch.location(in: self)
let node = self.atPoint(pos)
if node == playButton {
if let view = view {
let transition:SKTransition = SKTransition.fade(withDuration: 1)
let scene:SKScene = GameScene(size: self.size)
self.view?.presentScene(scene, transition: transition)
}
}
}
}
}
.sks
文件并向其类发送一些参数? - Arti创建两个新文件。一个是Sprite Kit场景,一个是Cocoa Touch文件。它们的名称应相同,例如MenuScene。要创建这些文件,您需要在Xcode项目的侧边栏中单击文件夹。然后,为了让MenuScene在运行应用程序时显示出来,请进入GameViewController文件。在viewDidLoad
下方有一行代码。if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
将其更改为if let scene = MenuScene.unarchiveFromFile("MenuScene") as? Menu Scene {
然后,在您的MenuScene中,必须有一个按钮,指向GameScene。
import SpriteKit
class MenuScene: SKScene {
var playButton = SKSpriteNode()
let playButtonTex = SKTexture(imageNamed: "play")
override func didMoveToView(view: SKView) {
playButton = SKSpriteNode(texture: playButtonTex)
playButton.position = CGPointMake(frame.MidX, frame.midY)
self.addChild(playButton)
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
if let touch = touches.first as? UITouch {
let pos = touch.locationInNode(self)
let node = self.nodeAtPoint(pos)
if node == playButton {
if let view = view {
let scene = GameScene.unarchiveFromFile("GameScene") as! GameScene
scene.scaleMode = SKSceneScaleMode.AspectFill
view.presentScene(scene)
}
}
}
}
如果您需要进一步解释,请提出询问。