Spielzustand-Automaten
Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
[unmarkierte Version] | [gesichtete Version] |
K (Kategorie Java hinzugefügt, Gliederung bei der technischen Umsetzung angepasst) |
|||
Zeile 2: | Zeile 2: | ||
[[Kategorie:C++]] | [[Kategorie:C++]] | ||
[[Kategorie:C-Sharp]] | [[Kategorie:C-Sharp]] | ||
+ | [[Kategorie:Java]] | ||
[[Kategorie:Spiellogik]] | [[Kategorie:Spiellogik]] | ||
[[Kategorie:Für Fortgeschrittene]] | [[Kategorie:Für Fortgeschrittene]] | ||
Zeile 39: | Zeile 40: | ||
[[Datei:uml_states.png|miniatur|UML-Klassendiagramm eines Spielzustand-Automaten]] | [[Datei:uml_states.png|miniatur|UML-Klassendiagramm eines Spielzustand-Automaten]] | ||
− | === State === | + | ==== State ==== |
<tt>State</tt> definiert die Schnittstelle für Spielzustände, die vom <tt>StateManager</tt> verwaltet werden. Für jeden konkreten Spielzustand wird eine Klasse benötigt, die die <tt>State</tt>-Schnittstelle implementiert. Die Schnittstelle enthält eine Reihe von Methoden, die beim Eintritt bestimmter Ereignisse vom <tt>StateManager</tt> aufgerufen werden: | <tt>State</tt> definiert die Schnittstelle für Spielzustände, die vom <tt>StateManager</tt> verwaltet werden. Für jeden konkreten Spielzustand wird eine Klasse benötigt, die die <tt>State</tt>-Schnittstelle implementiert. Die Schnittstelle enthält eine Reihe von Methoden, die beim Eintritt bestimmter Ereignisse vom <tt>StateManager</tt> aufgerufen werden: | ||
Zeile 50: | Zeile 51: | ||
* <tt>'''OnLostFocus'''</tt>: Wird ein Spielzustand auf den Stapel gelegt, wird dieses Ereignis ausgelöst. In Abhängigkeit von transparenten Zuständen wird hier Aktualisierungs- bzw. Visualisierungslogik weiterhin durchgeführt. | * <tt>'''OnLostFocus'''</tt>: Wird ein Spielzustand auf den Stapel gelegt, wird dieses Ereignis ausgelöst. In Abhängigkeit von transparenten Zuständen wird hier Aktualisierungs- bzw. Visualisierungslogik weiterhin durchgeführt. | ||
− | === StateManager === | + | ==== StateManager ==== |
Der <tt>StateManager</tt> verwaltet alle für das Spiel möglichen Zustände. Dazu werden ihm alle Zustände durch <tt>AddState</tt> bekannt gemacht. Für den <tt>StateManager</tt> ist immer genau ein Zustand aktuell. Dieser lässt sich mit der Methode <tt>SetState</tt> festlegen. | Der <tt>StateManager</tt> verwaltet alle für das Spiel möglichen Zustände. Dazu werden ihm alle Zustände durch <tt>AddState</tt> bekannt gemacht. Für den <tt>StateManager</tt> ist immer genau ein Zustand aktuell. Dieser lässt sich mit der Methode <tt>SetState</tt> festlegen. |
Version vom 14. Dezember 2011, 10:19 Uhr
Klicke hier, um diese Version anzusehen.