ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
951
951
EMPFEHLEN
-
Hallo,
ich programmiere ein Spiel in WPF und muss dazu fließende Bewegungen von grafischen Elementen (z.B. ein Rechteck) manuell steuern. Deshalb kann ich keine DoubleAnimation verwenden. Wenn ich nun z.B. einen DispatcherTimer laufen lasse, der alle 25ms einen Bewegungsschritt ausführt, so ruckelt die Bewegung immer etwas. Verwende ich das CompositionTarget.Rendering-Event, so ist die Bewegung zwar stabil (klar, denn es wird ja immer brav pro Renderschritt animiert und nicht mitunter dazwischen), aber die Geschwindigkeit ist abhängig von der Bildschirmfrequenz. Somit würden die gleichen Bewegungen im Spiel bei 50Hz langsamer laufen, als bei 60Hz.
Was wäre also der richtige Ansatz, um ruckelfreie Bewegungen mit immer gleicher Geschwindigkeit zu erzeugen?
Danke,
Meldur
-
Du kannst doch in jedem Rendering-Event ausrechnen, wie weit das Rechteck verschoben werden muss, damit die Geschwindigkeit konstant ist. Merke dir einfach die Systemzeit beim letzten Event und berechne die Zeitdifferenz zur aktuellen Zeit. Somit kennst du die vergangene Zeitspanne und weisst wie weit du das Rechteck verschieben musst.
hihi = -h²
Ähnliche Themen
-
Problem: Zufallszahlen sind konstant
Von Mr Apfelkuchen im Forum C/C++Antworten: 19Letzter Beitrag: 14.07.08, 15:39 -
manuelle Dateiübergabe
Von Silversurfer4u im Forum PHPAntworten: 2Letzter Beitrag: 26.06.06, 14:18 -
FPS konstant halten
Von Lloyd im Forum Flash PlattformAntworten: 6Letzter Beitrag: 10.08.05, 19:35 -
Manuelle Slideshow
Von xnerdyx im Forum Javascript & AjaxAntworten: 0Letzter Beitrag: 06.12.04, 01:53 -
SystemSpeicher erhöht sich konstant
Von Julien im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 08.03.04, 11:35





Zitieren
Login





