2015-08-08 3 views
8

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?

+0

Possibile duplicato del [Menu principale Nel Swift] (http://stackoverflow.com/questions/41665676/main-menu-in-swift) – SumNeuron

risposta

5

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.

+0

miglia Ciao, io non vedere if se scene = GameScene.unarchiveFromFile ("GameScene") come? GameScene {all'interno del mio file gameviewcontroller? È in un'altra posizione? –

11

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) 
       } 
      } 
     } 
    } 
} 
+0

Ho uno schermo grigio quando faccio questo ... – Arti

+0

come faccio a mostrare il file '.sks' e ad inviare alcuni parametri alla sua classe – Arti