2015-03-11 16 views
5

Jednym z głównych powodów używania Xcode zamiast innych aplikacji do tworzenia aplikacji na iOS było budowanie interfejsu scenorysów. Byłem niezadowolony, gdy dowiedziałem się, że nie ma zamiaru używać storyboardów z spriteKit. Trudno mi zaprojektować ładny interfejs do menu gry bez dobrego graficznego konstruktora. Czy istnieje sposób na uruchomienie aplikacji spriteKit przy użyciu storyboardów, a następnie kliknięcie przycisku "start game", przejście do scen spriteKit, a kiedy przegrywasz grę, w kodzie przełącz się z powrotem na storyboardy (używając swift)? Proszę o pomoc i dzięki.Jak używać scenorysów z spriteKit przy użyciu szybkiego

-Callum-

Odpowiedz

6

SpriteKit sceny jest przedstawiona na przykład z SKView, które jest podklasy UIView.

W przypadku gier na iOS utworzonych przy użyciu SpriteKit należy skonfigurować co najmniej jedną kontrolkę viewController, albo programowo w delegacie aplikacji, albo w scenorysie, na którym można wyświetlić SKScene. Na głównym widoku tego VC znajduje się SKScene.

Więc jeśli używasz storyboardu, gra iOS będzie musiała utworzyć instancję root viewController. Możesz łatwo zaprojektować swój interfejs użytkownika na viewController i zaprezentować grę z kodu za naciśnięciem jednego przycisku, w tym samym viewControllerze lub nowym. Wszystko to będzie oczywiste po przeczytaniu samouczka dla początkujących dla SpriteKita za pomocą Swifta, takiego jak this.

Załóżmy, że Twój widok głównyKontroler ma swoje główne menu (w innym widoku nazwanym menuView), z przyciskiem odtwarzania. Teraz prezentując grę na naciśnięcie przycisku będzie wyglądać mniej więcej tak:

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

chodzi o powrót do głównego menu ze sceny, przyjrzeć się tej answer.

Powiązane problemy