Spielzustand-Automaten

Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
[unmarkierte Version][unmarkierte Version]
K (State)
(Grundidee und Architektur)
Zeile 16: Zeile 16:
 
<tt>State</tt> definiert ein Interface für den <tt>StateManager</tt>. Dieses wird von den konkreten Spielzuständen implementiert. Für einen Spielzustand können abhängig von der Situation unterschiedliche Schnittstellen interessant sein. Grundsätzlich können folgende prinzipiell notwendig sein:
 
<tt>State</tt> definiert ein Interface für den <tt>StateManager</tt>. Dieses wird von den konkreten Spielzuständen implementiert. Für einen Spielzustand können abhängig von der Situation unterschiedliche Schnittstellen interessant sein. Grundsätzlich können folgende prinzipiell notwendig sein:
  
* <tt>'''Initialize'''</tt>: Wird das erste Mal zu einem Zustand gewechselt, so wird <tt>Initialize</tt> aufgerufen. Gelöst ist das, indem die Methode <tt>IsInitialized</tt> am Anfang <tt>false</tt> liefert. Nach dem Aufruf von <tt>Initialize</tt> ist dies nicht mehr der Fall.
 
* <tt>'''IsInitialized'''</tt>: Diese Methode liefert <tt>true</tt> zurück, wenn der Zustand schon initialisiert ist. Das ist nach <tt>Initialize</tt> der Fall.
 
 
* <tt>'''OnEnter'''</tt>: Der <tt>StateManager</tt> ruft diese Methode auf, wenn von einem anderen Zustand zu diesem Zustand gewechselt wird. Dadurch können z.B. Variablen zurückgesetzt, Eingangsanimationen gestartet oder ein Musikstück abgespielt werden.
 
* <tt>'''OnEnter'''</tt>: Der <tt>StateManager</tt> ruft diese Methode auf, wenn von einem anderen Zustand zu diesem Zustand gewechselt wird. Dadurch können z.B. Variablen zurückgesetzt, Eingangsanimationen gestartet oder ein Musikstück abgespielt werden.
 
* <tt>'''OnLeave'''</tt>: Bei der Einleitung eines Zustandswechsels wird, bevor der neue Zustand gesetzt wird, <tt>OnLeave</tt> vom noch aktuellen Zustand aufgerufen. Dadurch können wichtige Nacharbeiten durchgeführt werden (Musik stoppen, Ressourcen freigeben, ...).
 
* <tt>'''OnLeave'''</tt>: Bei der Einleitung eines Zustandswechsels wird, bevor der neue Zustand gesetzt wird, <tt>OnLeave</tt> vom noch aktuellen Zustand aufgerufen. Dadurch können wichtige Nacharbeiten durchgeführt werden (Musik stoppen, Ressourcen freigeben, ...).

Version vom 7. November 2011, 14:19 Uhr

Klicke hier, um diese Version anzusehen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge