AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Konstante Simulationsgeschwindigkeit
Thema durchsuchen
Ansicht
Themen-Optionen

Konstante Simulationsgeschwindigkeit

Ein Thema von sabbert · begonnen am 15. Sep 2010 · letzter Beitrag vom 16. Sep 2010
Antwort Antwort
sabbert

Registriert seit: 16. Apr 2008
67 Beiträge
 
#1

Konstante Simulationsgeschwindigkeit

  Alt 15. Sep 2010, 23:15
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.

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
Christian
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Konstante Simulationsgeschwindigkeit

  Alt 16. Sep 2010, 00:11
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
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Konstante Simulationsgeschwindigkeit

  Alt 16. Sep 2010, 01:35
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 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