Maximilian O
meine Frage ist jetzt, wie kann ich diese 10px Verschiebung "smooth" abwickeln?
Die kurze Antwort ist: gar nicht. Wenn Du eine flüssige Animation machen willst musst Du das anders herum angehen. Anstatt die Pixel festzulegen und dann zu schauen wie groß der Zeitabschnitt sein muss in dem Du die Grafik aktualisierst, musst Du feststellen wie groß Dein Zeitabschnitt zwischen zwei Zeichenoperationen ist, und basierend darauf festlegen um wieviele Pixel du die Figur weiter bewegst.
Konkret: Baue eine Schleife die Deine Zeichenoperation ausführt. Prüfe wie viele Millisekunden zwischen den Zeichenoperationen vergehen. Bewege Deine Figur genau soviele Pixel weiter wie sie sich in der verstrichenen Zeit weiter bewegt haben sollte.
Zum Beispiel: Deine Figure soll in einer Sekunde 100 Pixel weit wandern. Zwischen Deinen Zeichenoperationen vergehen 50 Millisekunden. Dann bewegst Du Deine Figur zwischen zwei Zeichenoperationen (50 Millisekunden /1000 Millisekunden) * 100 Pixel = 5 Pixel weiter.
Wenn Du das Ganze jetzt noch ruckelfrei gestalten möchtest musst Du noch darauf achten dass Du die Garbage Collection in den Griff bekommst.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.