Update

Aus Das Sopra Wiki
Zur Navigation springen Zur Suche springen
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

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