Smooth Movement SFML
-
Hallo,
Ich versuche gerade ein Spiel zu programmieren mit SFML, dabei bewege ich ein Sprite auf dem Fenster, sobald der Player eine Taste drückt (oder halt gedrückt hält):
if (App.GetInput().IsKeyDown(sf::Key::Left)) m_sprite.Move(6, 0);
Dies führt aber zu stockigen Movement! Gibt es einen besseren Weg mein Objekt genau gleichschnell zu bewegen, aber halt smooth?
-
Das Inputhandling ist bei SFML "event-driven", d.h. unter Windows wird auf diverse Windowsnachrichten reagiert, was bei dir zu dem Ruckeln führt. Polling (z.B. GetAsyncKeyState) vermeidet das hier.
-
er braucht garnix nicht zu pollen.
er muss sich nur für jede taste die ihn interessiert merken, ob sie gerade "up" oder "down" ist.und dann in jedem frame entsprechend das sprite weiterschieben oder eben nicht.
natürlich ist das irgendwo fast dasselbe, wie wenn man GetAsyncKeyState hernimmt, nur nicht plattformabhängig.
-
-müll-
-
Also bei mir Funktioniert deine Lösung Einwandfrei ohne Ruckeln...schon bei mehreren Projekten