Spielzustand-Automaten

Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
[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.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge