Was ist der beste Weg, um ein Hauptmenüsystem zu erstellen?


12

Ich weiß, dass es einfach ist, Schaltflächen hervorzuheben, wenn Sie mit der Maus darüber fahren, aber wenn es um Untermenüs geht, stecke ich irgendwie fest. Hat jemand ein paar Tipps, wie man ein Hauptmenü mit Untermenüs zusammenstellt? (wie Singleplayer -> Load Save -> Save 1-5? -> Spiel starten etc.)

Antworten:


12

Dies geschieht normalerweise mit einem Stapel von Spielzuständen. Zum Beispiel würde jeder oben aufgeführte Gegenstand wie folgt auf einen Stapel geschoben:

  • Spielweise
  • Wählen Sie Speichern
  • Einzelspieler
  • Hauptmenü

Wobei jeder Status auf dem Stapel auf seine Unterelemente verweist. Wenn eine Schaltfläche angeklickt wird, wird ihr entsprechender Status auf den Stapel gelegt und wird zum obersten Element, mit dem gezeichnet und interagiert wird. Normalerweise zeichnen Sie nur diesen oberen Status, es sei denn, zwischen den Ebenen besteht eine Art Transparenz. In diesem Fall zeichnen Sie vom unteren Rand des Stapels bis zum aktiven Status.


Wenn Sie weitere Ideen zu den Spielstatus-Stapeln haben möchten, gibt es diese Frage: gamedev.stackexchange.com/questions/1783/game-state-stack
The Communist Duck

6

Sie sollten es auf jeden Fall als Finite-State-Maschine (FSM) oder als Stapel von Zuständen (Untermenüs) implementieren , je nach den genauen Anforderungen. Welches Untermenü auch immer das aktuelle im FSM oder das oberste auf dem Stapel ist, zeichnet auf den Bildschirm und verarbeitet die Eingabe. Wenn der Benutzer dann feststellt, dass er auf eine Schaltfläche klickt, schaltet er den FSM um oder schiebt den richtigen Status auf den Stapel, um zum nächsten Bildschirm zu gelangen.

In Ihrem Fall denke ich, dass ein Stapel am besten ist, aber wenn Sie ein komplexeres Menüsystem haben, das willkürlich durch Menüs springt, dann möchten Sie einen FSM verwenden.


4

"Bester Weg" ist völlig subjektiv. Schauen Sie sich an, wie andere Spiele dies tun, und prüfen Sie, ob Sie eines finden, das gut funktioniert. Das einzige, was Sie unbedingt benötigen, ist eine Möglichkeit für den Benutzer, auf Abbrechen zu klicken und zur vorherigen Ebene zurückzukehren. Sie können jedem Menüobjekt einen Verweis auf das Menü geben, aus dem es geöffnet wurde, oder es mit einem Stapel implementieren.

Abgesehen davon hängt alles davon ab, wie sich Ihr Spiel anfühlt und wie sich Ihre Menüs anfühlen sollen. Sollte jedes Menü den gesamten Bildschirm einnehmen, im Final Fantasy-Stil? Sollten sie wie Windows-Untermenüs voneinander abzweigen? Sollten Sie sich für etwas Exotisches wie Radialmenüs entscheiden? Es liegt wirklich an dir.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.