Das ist einleuchtend, danke. Jetzt bin ich aber auf mein Hauptproblem zurückgeworfen: Was, wenn ich eine beliebige Maximalhöhe y erreichen will? Dann reicht es nicht aus, wenn sich in jedem Additionsschritt v um g verkleinert, weil y erreicht wird, lange bevor v gegen 0 tendiert.
...
Doch, das sollte eigentlich schon passen, denn g ist (zumindest real) für alle Sprünge gleich, egal wie hoch. Aber wenn du eine zu erreichende Sprunghöhe y (bzw. h_max) vorgibst, ändert sich die nötige Anfangsgeschwindigkeit
y = (v^2)/(2g) => v = sqrt(2g*y) [sqrt = Quadratwurzel]
Kann erst später ausführlicher werden, aber nur soviel schon mal noch zur Klärung: Ich sehe bei dir noch den Denkfehler, dass du g, y und die Dauer des Sprunges vorgeben willst. Es reichen aber schon 2 Werte vollkommen aus (z.B. Sprunghöhe und Sprungdauer). g und v ergeben sich dann daraus.
Das g verwendest du dann auch für alle anderen Sprunghöhen und passt nur noch v an. Die Sprungzeit ergibt sich dabei dann von allein.
Die Additionsschritte für jeden Sprung berechnest du dann wie oben beschrieben:
Startwert: v - g/2
jeder weitere Schritt: v = v - g
Die durchzuführenden Schritte im bzw. vor dem Spiel dürften dann etwa so aussehen:
Vorbereitung/Planung
0.(da vor dem Spiel) Durch einen Referenzsprung (gewünschte Höhe y und Dauer t) den Wert für g festlegen => g = 2y/(t^2)
Der eigentliche Sprung
1.) Bei einem Sprung im Spiel aus der (bereits zu Beginn feststehenden?) Sprunghöhe y die Anfangsgeschwindigkeit v ermitteln => v = sqrt(2g*y)
2.) Durchführung des Sprunges durch Berechnung der Additionsschritte für den Höhenzuwachs, beginnend mit v = v - g/2, danach immer v = v - g
und zwischendurch jedes Mal die neue Höhe durch y = y + v berechnen.
3.) Solange wiederholen, bis die Figur wieder festen Boden erreicht hat.
Aphonia heroica: Unvermögen eines Helden, eigene Dialoge zu generieren. Prominente Fälle: Link (Legend of Zelda), Crono (Chrono Trigger), Edel (Hell Gates 2)
Pi = 2! ...zumindest in 1D...
Kutte benutzt Dinkelplätzchen. - Es ist sehr effektiv!