2015-08-08 11 views
8

Ich habe ein wirklich einfaches Spiel in xcode mit Spritekit und Swift erstellt. Ich habe das eigentliche Spiel selbst programmiert. Jetzt möchte ich ein Hauptmenü erstellen, so dass, wenn das Spiel geöffnet wird, ein Menü mit Schaltflächen vorhanden ist, die entweder in Einstellungen gehen oder das Spiel starten. Ich habe keine Ahnung, wie ich das machen kann. Soll ich ein Storyboard verwenden? Und wenn ja, wie kann ich es in xcode implementieren. Danke allen :)Wie erstelle ich ein Hauptmenü für ein Spritekit-Spiel, das mit swift in xcode erstellt wurde?

+0

Mögliche Duplikat [Hauptmenü In Swift] (http://stackoverflow.com/questions/41665676/main-menu-in-swift) – SumNeuron

Antwort

5

Erstellen Sie zwei neue Dateien. Eine Sprite-Kit-Szene und eine Kakao-Touch-Datei. Benennen Sie sie gleich, zum Beispiel MenuScene. Um die Dateien zu erstellen, klicken Sie auf den Ordner in der Seitenleiste Ihres xcode-Projekts. Wenn Sie die MenuScene-Show beim Ausführen Ihrer App sehen möchten, gehen Sie in die GameViewController-Datei. Es gibt eine Linie unter viewDidLoad. if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene { dies Dann haben Sie in Ihrem MenuScene in if let scene = MenuScene.unarchiveFromFile("MenuScene") as? Menu Scene { ändern, um eine Taste haben, dass Sie Ihre GameScene führt

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

fragen, ob Sie eine weitere Erklärung benötigen.

+0

hallo Meilen, ich nicht Siehe die if let Szene = GameScene.unarchiveFromFile ("GameScene") als? GameScene {innerhalb meiner Gameviewcontroller-Datei? Ist es an einem anderen Ort? –

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

Ich habe einen grauen Bildschirm, wenn dies ... – Arti

+0

Wie zeige ich '.sks' Datei und sende einige Parameter zu seiner Klasse – Arti

Verwandte Themen