Was nimmt am besten um die Zeit für die Bewegung zu kriegen?
@rklaffehn: GetLastTickCount ist dir ja nicht bekannt. Womit arbeitest du?
Ich arbeite mit QueryPerformanceCounter (oder so), aus dem weiter oben von mir genannten Link (MSDN).
Und du räts von WM_Timer ab. Gilt dies allgemein für WM_-Nachrichten?
WM_TIMER kann man benutzen, um sich nach einer (relativ) festen Zeit selbst eine Nachricht in der Windows-Nachrichtenschleife zu schicken. Das ist aber nicht besonders genau, also für Simulationen nicht besonders geeignet. Das ist auch der Grund, warum ich dir davon abgeraten habe.
Die übliche Render-Schleife basiert ja darauf, dass man ständig WM_PAINT Meldungen bekommt. Der Unterschied ist, WM_PAINT bekommt man so schnell wie Windows das zulässt, WM_TIMER bekommt man immer mit einem quasi festen Abstand. K.A. ob man Timer auch mit Deltazeit 0 absetzen kann... aber selbst wenn, warum sollte man seine Render-Schleife anders bauen als alle anderen?
Also: nein, ich rate nicht generell von WM_* Meldungen ab. Unter Windows kommt man einfach nicht drum rum.
Eigentlich wollte ich nur verhindern, dass du gleich auf den falschen Zug aufspringst, wenn du die MSDN Seite liest.
Wenn ja, wie soll ich dann die Move-Funktion (oder überhaupt die Bewegungen) einbauen?
Ein Weg, wie man sowas machen kann, steht in Davids Buch auf Seite 8 bis 12 (3. Auflage, Kapitel 1.2.4: Das Problem mit der Zeit)
MfG,
Rainer