Ich könnte mich täuschen, aber wird GetTickCount nicht auch mit dem Systemzeitgeber hochgezählt, sodass die Auflösung auch nur 55ms beträgt - zumindest unter Win95 und 98 war es, glaube ich, so.
Alternativ kannst du dir auch die WinAPI Funktionen QueryPerformanceCounter und QueryPerformanceFrequency, mit denen sich die Zeit in Prozessor- (oder zumindest Bustaktzyklen) messen lässt, was z.B. zum profilen diverser Funktionen recht praktisch sein kann.
Normalerweise macht man es so, dass nicht eine Einheit alle 0.05 Sekunden um einen konstanten Wert über den Bildschirm bewegt wird. Vielmehr gibt man animierten Einheiten virtuelle Geschwindigkeiten (z.B. Meter pro Sekunde - was auch immer), bewegt wird dann jeden Frame, und zwar in Abhängigkeit der durchschnittlichen Frames pro Sekunde (die Formel lautet dann: v * 1.0 / FpS, oder einfacher v / FpS oder v * AverageFrameTime oder v * LastFrameTime, wobei v die Geschwindigkeit pro Sekunde darstellt, FrameTime hingegen die Zeit in Sekunden, die für einen einzelnen Frame benötigt wird).
Neben der einfacheren Verwaltung hat das Ganze auch den Vorteil, dass es auf schnellen Rechnern automatisch flüssiger läuft, und auf langsamen Rechnern besteht keine Gefahr eines stalls, wenn der Timer öfter aufgerufen wird, als der Rechner die Animationen überhaupt verarbeiten kann.
Ja, GetTickCount () habe ich früher schon mal benutzt. Nun schwören die Macher
der OpenGL Einführungen wie NeHe, Sulaco.co.za auf WM_Timer. Deßhalb dachte ich,
GetTickCount wäre irgendwie nicht mehr zeitgemäß ???
GetTickCount() ist auf jeden Fall viel einfacher einzusetzen!
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.