2D-Animationsklasse

Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
[unmarkierte Version][unmarkierte Version]
(Aufbau der 2D Animations Klasse)
Zeile 28: Zeile 28:
 
Wie in dem Bild des Klassendiagramms Rechts zu sehen ist, enthält die Klasse C2dAnimation folgende Klassenvariablen:
 
Wie in dem Bild des Klassendiagramms Rechts zu sehen ist, enthält die Klasse C2dAnimation folgende Klassenvariablen:
 
* eine Instanz der [[Sprite Sheet Klasse]] (''Sheet'')
 
* eine Instanz der [[Sprite Sheet Klasse]] (''Sheet'')
* einen Statischer Taktgeber (''Timer'')
+
* einen statischen Zeitgeber (''Timer'')
 
* eine float Variable die die Zeit enthält wann das nächste Bild dargestellt werden soll (''NextFrameTime'')
 
* eine float Variable die die Zeit enthält wann das nächste Bild dargestellt werden soll (''NextFrameTime'')
 
* eine float Variable die Angibt wie lange die Umschaltzeiteine von einem Bild zum nächsten dauert (''FrameTime'')
 
* eine float Variable die Angibt wie lange die Umschaltzeiteine von einem Bild zum nächsten dauert (''FrameTime'')
Zeile 43: Zeile 43:
 
* Set Methode für die relevanten Daten der Animation (''Set_Animation(int firstframe, int lastframe, int stopframe, float frametime)'')
 
* Set Methode für die relevanten Daten der Animation (''Set_Animation(int firstframe, int lastframe, int stopframe, float frametime)'')
 
* ein Methode die die Animation an oder aus Schaltet (''Animation_On(bool Value)'')
 
* ein Methode die die Animation an oder aus Schaltet (''Animation_On(bool Value)'')
 +
 +
Die Floatwerte ''NextFrameTime'' und ''FrameTime'' können auch durch einen anderen Datentyp repräsentiert werden, dies ist Abhängig vom ''Timer'', je nach dem welchen Datentyp er nutzt, um die Verstrichene Zeit zu speichern. Dieser Datentyp variiert also von Programmiersprache zu Programmiersprache und genutzter Bibliotheke.
  
 
== Funktionsweise der 2D Animations Klasse ==
 
== Funktionsweise der 2D Animations Klasse ==
 +
Zuerst noch mal der Hinweis, falls dieses noch nicht geschehen ist, sich den Artikel für die [[Sprite Sheet Klasse]] durchzulesen, das erhöht das Verständniss für die Funktionsweise der 2D Animations Klasse.
 +
 +
Die Funktion ''Load_SpriteSheet(String path, int SpriteSize_X, int SpriteSize_Y)'' veranlasst, dass die gewünschte Bilddatei in den Speicher geladen wird. Die Werten für ''SpriteSize_X'' und ''SpriteSize_Y'' bestimmen wie groß das "Sichtfenster" innerhalb des Sprite Sheets sein soll.
 +
 +
Der Aufruf der Funktion ''Set_Animation(int firstframe, int lastframe, int stopframe, float frametime)'' legt die Eckdaten der Animation fest. Der Wert ''firstframe'' bestimmt dabei den ersten Index, für das erste Bild der Animation, auf dem Sprite Sheet und ''lastframe'' legt den Index für das letzte Bild der Animation auf dem Sprite Sheet fest. Der Wert von ''frametime'' legt fest wieviel Zeit vergehen soll bis das nächste Bild der Animation angezeigt werden soll. Die Variable ''stopframe'' enthält den Index für das Bild welches Angezeigt wird wenn die Animation gestoppt ist, diese könnte z.B. das erste Bild der Animation sein oder aber auch ein ganz anderes Bild auf dem Sprite Sheet.
 +
 +
Da es ausreichend ist, dass jede Instanz der 2D Animaitons Klasse auf einen einzigen Zeitgeber zurückgreift, ist dieser statisch. Der statische Zeitgeber ist sozusagen der Motor der Klasse. Wird die Funktion ''Get_CurrentFrame()'' aufgerufen wird als erstes überprüft ob ''Animation_On'' true oder false ist. Wenn ''Animation_On'' gleich false ist, wird der [[Sprite Sheet Klasse]] mittels der ''Get_Sprite(int Index)'' Methode die Variable ''StopFrame'' übergeben und die Funktion gibt das gewünschte [http://de.wikipedia.org/wiki/Sprite_(Computergrafik) Sprite] zurück, für den Fall das keine Animation erwünscht ist. Für den Fall, dass ''Animation_On'' gleich true ist,
 
== Pseudocode ==
 
== Pseudocode ==

Version vom 13. Oktober 2012, 20:02 Uhr

Klicke hier, um diese Version anzusehen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge