Ich bin neu zu Phaser und ich habe ein Multilevel-Puzzle-Spiel geschrieben.Wie man einen Zustand in Phaser beendet und zurück zu einem vorherigen Zustand
Hierarchisch die Staaten gehen so etwas wie dieses - Menü -> Stufe 1 -> Stufe 2 -> usw.
Nehmen wir nun an spiele ich Stufe 1 und entweder nach Fertigstellung Ebene oder in der Mitte, wenn ich Taste drücken zurück Ich möchte in der Lage sein, in den Menüzustand zurückzukehren und von dort aus möchte ich zurück zu den vorderen Ebenen navigieren können, wenn ich weiterspielen möchte.
Zunächst nahm ich an, this.state.start('anyLevel')
könnte mich in einen beliebigen Zustand bringen und der Zustand würde normal laufen, als wenn zum ersten Mal seit dem Start ausgeführt. Es ist jedoch schwierig, zu Staaten zurückzukehren, die bereits einmal gefeuert wurden. Was ich brauche, ist in der Lage zu sein, zu einem vorherigen Zustand zurückzukehren, und der Zustand sollte sich so verhalten, wie er es beim ersten Mal seit dem Booten tun würde. Ich habe irgendwo gelesen, dass ich den Zustand über shutDown()
bevor Sie einen neuen Zustand beginnen und ich habe aufzuräumen müssen:
shutdown: function() {
this.game.world.removeAll();
}
vor dem Start jede neue Ebene, aber es hat immer noch nicht helfen. Ich habe auch versucht mit:
this.state.start('anyLevel', true, false);
aber erwies sich als nutzlos. Der Debugger zeigt keine Fehler an, was syntaktisch bedeutet, dass das Programm korrekt ist, aber ich verstehe den Mechanismus nicht richtig.
Vielen Dank im Voraus.
Danke für die Beratung auf Multi-Level-Spiele. Aber was ist der richtige Weg, um einen alten Staat in Phaser zu beenden, während er in einen neuen Staat eintritt? Muss ich alles in shutDown() manuell zerstören? – RDN
Interphase 1 verfügt über ein Zustandsverwaltungshandbuch, das den Status "Herunterfahren" abdeckt. Dort erklärt er, dass Phaser für die meisten seiner eigenen Bereinigungen zuständig ist. Außerdem: "Wenn Ihr Spiel auf einer externen API basiert, dann möchten Sie vielleicht alle offenen Verbindungen schließen. Wenn es benutzerdefinierte Spielobjekte gibt, die Sie mit komplexeren Einstellungen erstellt haben, sollten Sie sie auch hier zerstören, um zu stoppen Sie bluten in den nächsten Zustand über. " (S. 64) Also sollte es in den meisten Fällen in Ordnung sein, es einfach sein zu lassen. –