2017-05-02 12 views
0

Also habe ich ein Problem mit meiner SpriteKit Scene-Datei. Ich habe momentan meine GameScene.sks in meiner GameScene.swift Datei. Wenn meine app Lasten bis der Benutzer gibt ein Menü, dann spielen drückt der Benutzer und an die GameScene Datei umge über das Spiel zu spielen:SpiteKit-Szene wird nicht zurückgesetzt?

let gameScene = SKScene(fileNamed: "GameScene") 
     gameScene?.scaleMode = .aspectFit 
     self.view?.presentScene(gameScene!, transition: SKTransition.fade(withDuration: 1.5)) 

Wenn der Spieler im Spiel auf ein Objekt trifft sie sterben und gehen zurück in das Menü (auch auf eine .sks Datei verknüpft):

let menu = SKScene(fileNamed: "menu") 
    menu?.scaleMode = .aspectFill 
    self.view?.presentScene(menu!, transition: transition) 

Hier, wo mein Problem ist, nachdem der Benutzer zurück zum Menü gebracht wird, sie das nächste Mal, wenn der Benutzer sofort spielen hit stirbt und wird zurückgebracht zur Speisekarte.

Dies ist, weil wenn GameScene aufgerufen wird, ist alles gleich wie wenn der Benutzer starb. Mit anderen Worten, der Spieler kontaktiert den gleichen Knoten, der sie zum Sterben gebracht hat.

Gibt es eine Möglichkeit das GameScene zurückzusetzen? Ich habe versucht, alle Knoten ohne Erfolg zu entfernen.

Darf ich die Szenen falsch darstellen?

Jede Hilfe würde sehr geschätzt werden.

+0

Dies ist nicht etwas, das ich erlebt habe, aber sind Sie sicher (über Debugging-Anweisungen, möglicherweise), dass eine neue 'SKScene' aus der Datei das zweite Mal erstellt wird? –

Antwort

1

Ich habe es herausgefunden! Ich habe meine removeFromParent() -Anweisung in meine menu.swift-Datei verschoben. Kurz bevor ich bin zu GameScene für den Übergang:

obstacles.removeFromParent() 

dann

let gameScene = SKScene(fileNamed: "GameScene") 
    gameScene?.scaleMode = .aspectFit 
    self.view?.presentScene(gameScene!, transition: SKTransition.fade(withDuration: 1.5)) 

Bitte lassen Sie mich wissen, wenn Sie eine bessere Lösung haben. Vielen Dank!

+0

Wenn Sie keine neue Szene neu erstellen möchten, können Sie eine Reset-Methode für Ihre Szene implementieren, die die Objekte in den Ausgangszustand zurückversetzt. –

Verwandte Themen