Ho creato un gioco molto semplice in xcode usando spritekit e swift. Ho finito di scrivere il codice del gioco vero e proprio. Ora voglio creare un menu principale in modo che quando il gioco si apre, ci sarà un menu con i pulsanti che entrano nelle impostazioni o che iniziano il gioco. Non ho idea di come posso farlo. Dovrei usare lo storyboard? E se sì, come posso implementarlo in xcode. Grazie a tutti :)Come creare un menu principale per un gioco spritekit fatto con swift in xcode?
risposta
Creare due nuovi file. Una scena di kit di sprite e un file di tocco di cacao. Assegnagli un nome uguale, ad esempio MenuScene. Per creare i file fai clic sulla cartella nella barra laterale del tuo progetto xcode. Quindi, per visualizzare ShowScene quando esegui l'app, accedi al file GameViewController. C'è una riga sotto viewDidLoad
. if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
cambiare questo in if let scene = MenuScene.unarchiveFromFile("MenuScene") as? Menu Scene {
Poi, nel tuo MenuScene bisogna avere un pulsante che si porta al tuo 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)
}
}
}
}
chiedere se avete bisogno di ulteriori spiegazioni.
miglia Ciao, io non vedere if se scene = GameScene.unarchiveFromFile ("GameScene") come? GameScene {all'interno del mio file gameviewcontroller? È in un'altra posizione? –
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)
}
}
}
}
}
Possibile duplicato del [Menu principale Nel Swift] (http://stackoverflow.com/questions/41665676/main-menu-in-swift) – SumNeuron