Spiel - Ablaufsteuerung
27. Okt 2004, 17:30
Hallo zusammen!
Ich möchte mit der Graphics32 Lib ein Spiel programmieren.
Nun steh ich vor einem wichtigen Grundsatzproblem, nämlich der Steuerung der Abläufe.
Es müssen einerseits Berechnungen vorgenommen werden (wie zum Beispiel das Bewegen der Charaktere und anderer Objekte, die aktiven Objekte sollen diese Berechnungen selbstständig durchführen), andererseits muss, nachdem alle Objekte mit ihren Berechnungen fertig sind, die graphische Darstellung neu gezeichnet werden.
Problem dabei ist: Zum Beispiel die Laufgeschwindigkeit eines Charakters sollte möglichst konstant sein, unabhängig von der Framerate. Es wäre unschön, wenn alle Charaktere plötzlich langsamer würden, weil gerade viele Berechnungen anstehen. Besser wäre es da, die Charaktere bekämen eine feste Geschwindigkeit (beispielsweise 30 Pixel pro Sekunde), bei hoher Auslastung müsste man dann das Wegfallen einiger Zwischenschritte in Kauf nehmen, was mir aber besser gefallen würde als eine starke Verlangsamung.
Wie wäre es sinnvoll das zu lösen?
Ein (Standard-) Timer ist vielleicht etwas zu ungenau.
Eine Endlosschleife wäre vielleicht eine Möglichkeit (eventuell mit sleep-Unterbrechung), dann müsste aber jedes Objekt selbstständig schauen, wann es zuletzt gezeichnet wurde, und wie weit es sich seit diesem Zeitpunkt bewegt hat. Die Auflösung von GetTickCount würde meiner Meinung nach hier ausreichen.
Wie seht ihr das, wie habt ihr soetwas gelöst?
Viele Grüße,
Sebastian (vorher Grotesquery, siehe Signatur!)
|