Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Konstante Simulationsgeschwindigkeit (https://www.delphipraxis.net/154575-konstante-simulationsgeschwindigkeit.html)

sabbert 15. Sep 2010 22:15

Konstante Simulationsgeschwindigkeit
 
Nabend zusammen,

Ich erstelle gerade ein kleines Projekt für die Schule.

Habe eine Procedure in der alle Bewegungen simuliert werden, was auch wunderbar klappt.

Nur sind die einzelnen Bewegungen unterschiedlich schnell, sozusagen bremsen die Bewegten Kugelen manchmal kurz ab.

Delphi-Quellcode:
Application.OnIdle := Spielfeld.Simuliere;
Habe meine Prozedur OnIdle zugeordnert. Vermute stark, dass es deshalb diese Geschwindigkeitsschwankungen gibt.

Wie kann ich dies beheben?

Edit:
Habe ein Image, auf das ich mit Hilfe von Canvas Bitmaps zeichne die ich Bewege.

mfg

xZise 15. Sep 2010 23:11

AW: Konstante Simulationsgeschwindigkeit
 
Du misst die Zeit die zwischen zwei Schritten vergangen ist? (Siehe Delphi-Referenz durchsuchenGetTickCount?) Je mehr Zeit vergangen ist, umso größer muss die Änderung sein.

MfG
Fabian

sx2008 16. Sep 2010 00:35

AW: Konstante Simulationsgeschwindigkeit
 
Man kann eine Simulation mit festen Zeitschritten durchrechnen, so das jede Neuberechnung
der Werte eine Delta-Zeit zu den vorhergehenden Werten hat.
Wenn du statt dem OnIdle-Event einen TTimer verwendest, dann wird diese Berechnung relativ gut mit der Realzeit übereinstimmen.
Die Taktrate des OnIdle-Event ist ziemlich unvorhersagbar und ausserdem Rechnerabhängig.

Würde man die Simulationsformeln so umbauen, dass man als Eingabeparameter die Zeit t (in Sekunden) übergibt, dann könnte man sehr exakte Ergebnisse erhalten.
Leider ist das nicht immer so leicht möglich, weil die Ergebnisse des vorherigen Berechnungsschritts in die Simulation eingehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz