Ich schreibe einen Klon des alten Space Invaders Spiels. Die Eindringlinge werden während update()
bewegt und Bomben zufällig fallen lassen; Das Spielerschiff bewegt sich, wenn der Bildschirm berührt wird. Wenn eine Invasorenbombe den Spieler trifft, möchte ich alles außer der Schiffsterbenanimation stoppen. Sobald dies abgeschlossen ist, möchte ich alles neu beginnen.Pause alles außer Animation eines Knotens?
Was ist der beste Weg, dies zu erreichen? Ich überlegte, über alle Knoten aufzuzählen, setze die Eigenschaft paused
auf true
; Hinzufügen eines Checks in update()
, um zu sehen, ob die Todesanimation auf dem Player ausgeführt wurde, und Bewegung überspringen, wenn dies der Fall war, und Ignorieren von Benutzereingaben, wenn die Animation ausgeführt wurde.
Ein anderer Ansatz wäre gewesen, einen Weltknoten zu haben, von dem alles ein Kind ist. Ich könnte dann den Weltknoten pausieren und eine Kopie des Schiffs des Spielers zu der Szene hinzufügen, die die Animation ausführt, so dass es so aussieht, als ob alles außer der Schiffs-Todesanimation gestoppt ist.
Beide scheinen eine Menge Arbeit für den Effekt, den ich will. Irgendwelche Vorschläge?
Sie können von nur einem ähnlichen Space Invaders Spiel in meinem Repo aussehen: [link] (https://github.com/n0an/SwiftBook.SpaceGame) Es diese Funktion mit Pause Bildschirm außer Animation realisiert wird. –
@AntonNovoselov - Danke. Du bist also den Weg gegangen, alles zu einem Kind eines passierbaren Knotens zu machen, damit du das Sternenfeld, Feinde usw. unabhängig anhalten kannst? –