2015-03-11 12 views
5

Einer der Hauptgründe für die Verwendung von Xcode anstelle von anderen Anwendungen für die Erstellung von iOS-Apps war der Storyboard-Interface-Builder. Ich war unglücklich, als ich herausfand, dass du keine Storyboards mit SpriteKit verwenden solltest. Ich finde es schwierig, eine nette Schnittstelle für ein Spielmenü ohne einen guten visuellen Erbauer zu entwerfen. Gibt es eine Möglichkeit, eine SpriteKit-Anwendung mit Hilfe von Storyboards zu starten, dann mit einem Klick auf "Spiel starten" zu SpriteKit-Szenen wechseln, dann, wenn Sie das Spiel verlieren, im Code zurück zu Storyboards wechseln (mit swift)? Bitte helfen und danke.Wie verwende ich Storyboards mit SpriteKit mit swift

-Callum-

Antwort

6

A SpriteKit Szene wird auf eine Instanz eines SKView präsentiert, die eine Unterklasse UIView ist.

Für ein iOS-Spiel, das mit SpriteKit erstellt wurde, muss mindestens ein viewController eingerichtet sein, entweder programmatisch im App-Delegaten oder in einem Storyboard, auf dem der SKScene angezeigt werden kann. In der Hauptansicht dieses VC wird eine SKScene angezeigt.

Wenn Sie also ein Storyboard verwenden, muss das iOS-Spiel den root viewController instanziieren. Sie können Ihre Benutzeroberfläche auf dem viewController einfach gestalten und das Spiel mit dem Code auf Knopfdruck darstellen, entweder im selben viewController oder in einem neuen. All dies wird offensichtlich, sobald Sie ein Anfänger-Tutorial für SpriteKit mit Swift wie this lesen.

Angenommen, Ihr root viewController verfügt über Ihr Hauptmenü (in einer anderen Ansicht namens menuView) mit einer Wiedergabeschaltfläche. Jetzt ein Spiel auf dem Knopfdruck präsentieren würde wie folgt aussehen:

class MyViewController: UIViewController { 
    @IBOutlet wear var menuView: UIView? 
    @IBOutlet weak var playButton: UIButton? 

    @IBAction func likedThis(sender: UIButton) { 
    //Hide the menu view 
    menuView.hidden = true 

    //instantiate and present the scene on the main view 
    let scene = MyScene(size: view.bounds.size) 
    let skView = self.view as SKView 
    skView.presentScene(scene) 
    } 
} 

Was in das Hauptmenü aus der Szene zurück, haben einen Blick auf diesen answer.

Verwandte Themen