Die genaueste Variante Zeit zu messen
lima-city → Forum → Programmiersprachen → C/C++ und D
ansatz
arbeiten
beispiel
besten feeling
code
computer
double
http
interessieren
konsole
objekt
sekunde
setzen
spiel
uhr
unterschiedlichen geschwindigkeiten
url
vorhaben
vorteil
wissen
-
Ich möchte meine Grafikengine nun noch mit eine Zeitkontrolle verknüpfen, damit es nicht zu unterschiedlichen Geschwindigkeiten auf verschiedenen Rechnern kommt. Dafür berechne ich die Umgebung nur in bestimmten Abständen neu. Diese Abstände sollen jetzt erfasst werden. In einem Beispielcode für die Kosole sieht man allerdings, dass es (zumindest mit meinem Ansatz) zu einer Verzögerung kommt. Meine Uhr ist schneller bei 10 Sekunden angelangt (fast doppelt so schnell), als die Ausgabe der Konsole.
Ich habe es auch schon mit anderen Varianten, wie zum Beispiel der GetTickCount() versucht, die waren aber allesamt noch ungenauer. Welche Variante empfiehlt sich besondern für ein solches Vorhaben?
#include <iostream> #include <ctime> using namespace std; int main() { clock_t zeit = clock(); for (double i = 1; i < 1001; i++) { while (clock() < (zeit + 10)); zeit = clock(); std::cout << i/100 << endl; } return 0; }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Es wäre interessant zu wissen, was dein endgültiges Ziel ist.
Wenn es dir darum geht, dass (bei einem Spiel beispielsweise) sich ein Körper auf allen Computern gleich schnell bewegt, würde ich eher auf ein TimeDelta setzen.
Das hat den Vorteil, dass alle Computer mit der maximalen Framerate, also dem besten Feeling, arbeiten und gleichzeitig sich die Objekte gleich schnell bewegen.
http://cboard.cprogramming.com/game-programming/89198-%5Bsdlplusopengl%5D-constant-framerate-code.html
Dich interessieren Kommentare #7, #9 und #13 da wahrscheinlich am meisten ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage