Zeit messen und umrechnen oder warten?
Nachdem ich dein kleines aber doch feines Kommentar gelesen habe, habe ich mich noch in ein paar Seiten eingelesen. Ich lasse einen Timer laufen, der eine bestimmte Anzahl pro Sekunde aufgerufen wird. In dieser Zeit wird meine Logik abgearbeitet (Dies bedeutet meine Logik wird öfters aufgerufen). Erst nachdem durchlaufen der sog. Ticks, lasse ich meine Szene darstellen. Soweit so gut.
Somit gewährleiste ich eine konstante Geschwindigkeit auf allen unterschiedlichen Hardwarekonfiguration. Wie kann ich aber nun die Geschwindigkeit im Spiel selbst regulieren; diese kann im Spielablauf ja auch mal variieren (also nicht die Geschwindigkeit oder der Faktor wie oft die Logik aufgerufen wird). Ich brauche ja irgendein Faktor den ich mit einem Wert multipliziere, um zu wissen wie weit sich die Sprites oder sonstige bewegende Elemente bewegen , pro Frame(pixel).
Ich würde mich über ein paar Antworten zu Aufklärung freuen. Das Thema scheint simpel, ist aber im Endeffekt in der Ausführung (jedenfalls für Anfänger) nicht ganz trivial.
xyn
// Des Weiteren wundert es mich, wie es funktioniert wenn ich in meiner Logik abfrage (z.B.) ob ich von einem Gegner getroffen werde.
|
C-/C++-Quelltext
|
1
2
|
PSEUDOCODE
if(hitByEnemy) healthpoints -= 10;
|
Somit würde doch im Normalfall dieser Aufruf pro Sekunde viel öfters aufgerufen. Wie handhabt man soetwas? Oder bin ich gerade nur etwas verwirrt... ist ja auch schon spät.