Spielzustand-Automaten
Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
[unmarkierte Version] | [unmarkierte Version] |
(→Grundidee und Architektur) |
(→Grundidee und Architektur) |
||
Zeile 8: | Zeile 8: | ||
== Grundidee und Architektur == | == Grundidee und Architektur == | ||
− | Die Grundidee eines Spielzustand-Automaten ist es, das Spiel in einzelne Spielzustände einzuteilen - einen <tt>State</tt>. Jeder <tt>State</tt> behandelt seinen eigenen Kontext an Daten, Aktualisierungen und Visualisierungen. Diese Zustände werden von einem so genannten Zustands-Manager <tt>StateManager</tt> verwaltet. Diesem wird jeder Spielzustand registriert, so dass er verwendet werden kann. | + | Die Grundidee eines Spielzustand-Automaten ist es, das Spiel in einzelne Spielzustände einzuteilen - einen <tt>State</tt>. Jeder <tt>State</tt> behandelt seinen eigenen Kontext an Daten, Aktualisierungen und Visualisierungen. Diese Zustände werden von einem so genannten Zustands-Manager <tt>StateManager</tt> verwaltet. Diesem wird jeder Spielzustand registriert, so dass er verwendet werden kann. Es gibt prinzipiell einen aktuellen Zustand, der durch den Zustands-Manager ausgeführt wird. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
=== Stapelverarbeitung von Zuständen === | === Stapelverarbeitung von Zuständen === | ||
Zeile 38: | Zeile 32: | ||
Es gibt Situationen, in denen mehrere Zustände im Stapel sichtbar sein sollen, einige sozusagen ''transparent'' sind. So könnte beispielsweise das Optionsmenü im Hintergrund noch den darunter liegenden Zustand (Hauptmenü oder das Spiel) durchscheinen lassen. Dies kann gelöst werden, indem jeder Zustand angeben kann, ob er transparent ist. Der Stapel wird dazu von oben nach unten durchlaufen, bis entweder das untere Ende erreicht ist oder ein Zustand gefunden wurde, der nicht transparent ist. Dann werden die Zustände von dieser Stelle an von unten nach oben übereinander gezeichnet, der oberste Zustand also zuletzt. | Es gibt Situationen, in denen mehrere Zustände im Stapel sichtbar sein sollen, einige sozusagen ''transparent'' sind. So könnte beispielsweise das Optionsmenü im Hintergrund noch den darunter liegenden Zustand (Hauptmenü oder das Spiel) durchscheinen lassen. Dies kann gelöst werden, indem jeder Zustand angeben kann, ob er transparent ist. Der Stapel wird dazu von oben nach unten durchlaufen, bis entweder das untere Ende erreicht ist oder ein Zustand gefunden wurde, der nicht transparent ist. Dann werden die Zustände von dieser Stelle an von unten nach oben übereinander gezeichnet, der oberste Zustand also zuletzt. | ||
+ | |||
+ | [[Datei:uml_states.png|miniatur|UML-Klassendiagramm eines Spielzustand-Automaten]] | ||
=== State === | === State === |
Version vom 14. Dezember 2011, 09:56 Uhr
Klicke hier, um diese Version anzusehen.