Beschleunigung - Bremsen
-
Hallo!
Ich hab in meinem Spiel ein Raumschiff, was jede Sekunde 30EH (eihneiten) beschleunigt. Dann hab ich noch eine Bremswirkung eingebaut, die jede Sekunde den Wert um 15% verringert.
Beschl.: speed += accel * PassedSecs; (PassedSecs is die Zeit die seit dem letzten Frame vergangen ist) Bremsen: speed = speed * pow(0.85, PassedSecs);
Jetzt möchte ich gerne ausrechnen, was denn der maximalspeed für mein flugzeug ist, ich dachte wenn man zuwachs und bremsen gleichsetzt geht der speed nicht mehr hoch, aber das geht nicht so recht:
accel * PassedSecs = speed - speed * pow(0.85, PassedSecs) (accel * PS) / (1-pow(0.85, PS) = speed
Aber das hängt noch von der Zeit seit dem letzten Frame ab, und das kann doch nicht sein, oder?
-
ich denke nicht, dass du die beiden einfach so gleichsetzten darfst.
Beschl.: speed1 = speed + accel * PassedSecs;
Bremsen: speed2 = speed1 * pow(0.85, PassedSecs);Da du zuerst die Beschleunigung ausrechnest und danach mit dieser Geschwindigkeit weiterrechnest sind speed1 und speed2 nicht gleich gross. Ich würde speed1 in der nächsten gleichung einsetzten. Ausserdem würde ich davon ausgehen, dass speed=0 ist, um die sache etwas zu vereinfachen.
t=PassedSecs
speed2=accel*t*0.85^tAber weiter kann ich dir auch nicht helfen (wenn das überhaupt stimmt was ich bis jetzt geschrieben habe ;)). Um den Maximalwert herauszufinden könntest du ableiten und nullsetzten, vielleicht hat die Funktion ja auch einen Grenzwert...
Vielleicht bist du jetzt wenigstens ein bisschen weiter.