Mausbewegung
-
Hi.
Warum ist die Mausbewegung in meinem programm nicht so flüssig wie
man das von anderen Spielen kennt ???
Wenn ich mich hier um meine Geometrie herumbewege, ruckelt die Maus wenn
ich sie bewege und ist nicht flüssig, so als wenn sie springen würde.
Weiß einer woran das liegt und wie ich das beheben kann?
Norman.
-
Ruckelt es wegen der Framerate oder rein wegen der Mausbewegung.
Könntest ja mal versuchen die Mausbewegung zu glätten.
Welche API benutzt du zur Eingabe? Kannst du deine Renderloop entschlacken?
-
Meine Framerate liegt bei ca. 350. Benutze DirectX 9, also zur
Eingabe Direct Input und MSVC7.
Hab mir schon gedacht dass es an der framerate liegen könnte aber selbst
das sollte man doch beheben können. Bein Renderloop ist ziemlich sauber,
ich glaube nicht dass es daran liegt, hatte das Problem auch bei vorherigen
Programmen.
Wie funktioniert das mit der Glättung, wird es helfen?
-
Du kannst auf verschiedenste Art und Weise glätten.
Das einfachste ist, dafür zu sorgen, dass sich die Maus pro Frame nicht weiter als einen Gewissen Grenzwert ändern kann. Dazu brauchst du nur die letzte Position speichern --> nicht sehr schön, da !schnelle_Bewegung_möglichDu kannst auch dafür sorgen, das sich die Geschwindigkeit pro Frame nicht schneller als einen gewissen Grenzwert ändert. -> letzte 2 Positionen speichern
Du kannst dir einen beliebigen Algorithmus ausdenken um zu glätten. Gut ist das, was gut funktioniert.
Beispiele: einen Tiefpassfilter programmieren,
oder das ganze so rechnen, als hätte die Mausposition eine Masse und hängt mit einer Feder an der Realen Position. ...
-
Gibts dafür Beispiele oder Algorithmen die das Thema behandeln und an
denen man sich orientieren kann?
-
Ich hab keins an der Hand ==> Google fragen. bzw www.gamedev.net isn guter anlaufpunkt für sowas und vieleicht is so ein tut auch auf www.robsite.de
//Edit: oder einfach selbst probieren. Macht mit abstand am meißten spass
-
Ich würde sagen der Unterschied zwischen zwei nacheinander gezeigten Frames ist zu groß. Wenn du ihn verringerst, ruckelt es nicht mehr.
Bye, TGGC (Keine Macht den Dummen)
-
Was meinst du mit Unterschied zwischen den Frames? Ich kann mir doch nicht
aussuchen wie der Anwender die Maus bewegt. Bei ner schnellen Bewegung ist
es eine großer Unterschied und bei ner kleinen...
Hoffe ich verstehs nicht falsch.
-
Norman0406 schrieb:
Was meinst du mit Unterschied zwischen den Frames?
Willst du eine mathematische Definition?
Norman0406 schrieb:
Ich kann mir doch nicht aussuchen wie der Anwender die Maus bewegt. Bei ner schnellen Bewegung ist
es eine großer Unterschied und bei ner kleinen...Tja, dann ist es wohl so. Hauptsache das Crosshair ruckelt auf den Gegner.
Bye, TGGC (Wähle deine Helden)
-
Hmm, DirectInput stellt dir doch einen Mauspuffer mit den letzten X Mausbewegungen zur Verfügung.
Daraus sollte sich doch ein schöner Angepaßter Wert errechnen lassen.
-
SeppSchrot schrieb:
Daraus sollte sich doch ein schöner Angepaßter Wert errechnen lassen.
Das will er ja offebsichtlich nicht.
Bye, TGGC (Wähle deine Helden)