Update: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Florian (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
LeonH (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
{{Stub}}
{{Stub}}
 
{{löschen}}
[[Update]] ist eine [[Methode]] der Klasse <tt>Game</tt><ref name="Game">http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.aspx MSDN-Artikel zur Klasse Game</ref>.
[[Update]] ist eine [[Methode]] der Klasse <tt>Game</tt><ref name="Game">http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.aspx MSDN-Artikel zur Klasse Game</ref>.



Aktuelle Version vom 18. Oktober 2020, 13:55 Uhr

Update ist eine Methode der Klasse Game[1].

Die gesamte Spiellogik und Game Mechanic sollte ausschließlich über diese Methode gesteuert und aktualisiert werden. Hier sollte keinerlei Rendering stattfinden, da dafür die Draw Methode zuständig ist.


Sofern der Fixed Time Step aktiviert ist, wird XNA versuchen diese Methode genau 60 mal pro Sekunde aufzurufen (60 Frames pro Sekunde, FPS). Zeitabhängige Vorgänge, wie beispielsweise die kontinuierliche Drehung eines Objektes mit konstanter Geschwindigkeit, können dann einfach realisiert werden indem man das Objekt in jedem Frame, also jedem Aufruf der Update Mehtode, um den selben Betrag (hier Grad) dreht.

  • Beispiel, Drehung eines Objektes: 1 Grad pro Frame -> 60 Grad pro Sekunde.


Wenn der Fixed Time Step ausgeschaltet ist wird XNA die Update und die Draw Methode einfach im Wechsel hintereinander so oft wie möglich aufrufen. Das bedeutet dass die Zeit die zwischen zwei Update-Zyklen stark variieren kann (je nach Komplexität des aktuellen Update- oder Draw-Zyklus).

  • Beispiel, Drehung eines Objektes bei  30 FPS: 1 Grad pro Frame -> 30 Grad pro Sekunde.
  • Beispiel, Drehung eines Objektes bei 100 FPS: 1 Grad pro Frame -> 100 Grad pro Sekunde.

Die Drehgeschwindigkeit könnte hier nun je nach Leistungsfähigkeit der Hardware variieren. Zeitabhängige Vorgänge müssen hier deswegen die Zeit die seit dem letzten Update vergangen ist berücksichtigen, da die Anzahl an Frames die pro Sekunde ausgeführt werden schwanken kann. Dies kann dadurch realisiert werden dass man Einheiten nicht auf pro Frame, sondern auf pro Millisekunden Basis verwendet. Wie das geht ist im MSDN-Artikel How To: Make a Game Use a Variable Time Step beschrieben.

Referenzen