Ich möchte mein Objekt mit einer Beschleunigung in die richtige Richtung bewegen. Zum Beispiel, wenn ich diese Werte habe:
friction = 0.3;
direction = 180;
speed = 5;
Um es klar zu machen, brauche ich eine Formel, um eine lineare Beschleunigung zu erzeugen.
mathematics
MahanGM
quelle
quelle
Die Beschleunigung ist die Geschwindigkeit, mit der sich die Geschwindigkeit ändert. Wenn es Null ist, bewegen Sie sich mit Ihrer Startgeschwindigkeit weiter. Wenn es größer als Null ist und in der gleichen Richtung wie die aktuelle Geschwindigkeit liegt, nimmt die Geschwindigkeit zu.
Wenn Beschleunigung = 2 ist, erhöht sich Ihre Geschwindigkeit für jeden Zeitschritt um 2.
quelle
Um Bewegungs- oder Physikberechnungen durchzuführen, sollten Sie immer die Zeit verwenden, die seit dem letzten Frame (dt oder Delta) aufgewendet wurde. Dies hängt von der Implementierung der Hauptschleife ab, wird jedoch im Allgemeinen an eine Methode namens update als Parameter übergeben. (Wenn dies nicht verfügbar ist, nehmen Sie dt = 1 an.)
Um Geschwindigkeit mit Beschleunigung und Zeit und Position mit Geschwindigkeit und Zeit zu aktualisieren, können Sie:
Beachten Sie, dass Beschleunigung, Geschwindigkeit und Position Vektoren sind, also haben sie die Operationen:
Weitere Informationen: http://en.wikipedia.org/wiki/Euclidean_vector#Addition_and_subtraction
Um einen Vektor mit einem bestimmten Winkel zu erstellen, können Sie die von Mr. Beast beschriebene Methode verwenden.
Um Reibung zu simulieren, können Sie Folgendes tun:
Wo Reibung eine Zahl sein sollte: 0 <Reibung <1
quelle
timeGetTime()
, um den vorherigen Frame zu berechnen. Vielen Dank.