SFML Spielfigur zu schnell bei gedrückter taste, wieso?



  • Hallo

    Frage steht schon im Titel. 😉
    Hier der Code:

    if (App.GetInput().IsKeyDown(sf::Key::Right))
    {
         SpielerSprite.Move(30, 0);
    }
    

    Wie kann ich das besser lösen? So dass die Spielfigur gleichmäßig läuft.
    Wusste nicht was ich Googeln sollte... 😞

    Gruss



  • Solang die Taste gedrückt ist, wird deine Spielfigur bewegt, da dein Rechner nicht bloß 64 MHz besitzt, bewegt er deine Spielfigur halt auch dementsprechend schnell, da er die Taste permanent auswertet.

    Du müsstest hier eine Wartezeit z.B. 0,5 Sekunden definieren bevor die Bewegung erneut ausgeführt wird.



  • Entweder mit aktueller Framezeit multiplizieren, oder gleich Fixed Timesteps verwenden und dafür sorgen, dass das Sprite in regelmässigen Zeitintervallen bewegt wird.


Anmelden zum Antworten