Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Timing für Spiele (Theorie)

von MitgliedTiSSeite 1 von 1

Die Theorie:

Sicher ist das allen schonmal passiert, man will mal fix ein altes (DOS-) Spiel zocken, drückt auf "Play" und ... sieht den "Game Over" Bildschirm. Die Entwickler gingen davon aus, dass jeder Computer die gleiche Hardware und Konfiguration hat.

Eine beliebte Möglichkeit, um den Ablauf etwas zu bremsen ist, SLEEPs zu verwenden. Aber die Nachteile liegen auf der Hand, auf einem schnellen PC braucht die Ablauflogik und der Bildaufbau weniger als 5ms während man auf alten Rechnern mit dem 5-fachen rechnen muss. Bei Spielen wie z.B. TicTacToe, die rundenbasierend ablaufen macht das nichts, während Jump'n'Run Spiele auf einem Rechner unspielbar sind, während auf anderen PC's Schneckentempo angesagt ist.

Das zweite Problem ist, das sich seit den Multitasking Betriebssystemen die Hintergrundlast verändern kann und man nicht zu Beginn ein Probeframe rendern kann, um das Tempo zu bestimmen.

Also muss mit jedem Frame eine neue Zeit für den nächsten Frame errechnet werden.

Beispiel: Die Kugel soll sich mit 1 Pixel pro Millisekunde über den Schirm bewegen.

[Position nächster Frame] = [Zeit seit dem letzten Frame in ms] * [Kugelgeschwindigkeit in ms]

So wird jedes Mal eine neue voraussichtliche Zeit für den nächsten Frame errechnet.

 

Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 10.07.2007 von MitgliedTiS angelegt.
  • Die aktuellste Version wurde am 09.08.2007 von MitgliedTiS gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen