Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Was genau willst du denn mit Sinus und Cosinus machen?
Wenn du damit unbedingt die "Flugbahn" annähern möchtest, kannst du eine Sinuskurve, die du vorher aus dem §[-1;1]§ Bereich in den §[0;1]§ Bereich transformierst relativ zur Absprunghöhe nutzen, ja.
Der gängige Weg ist aber über "reale" physikalische Berechnungen. Beim Stehen wirkt die Erdanziehungskraft auf dich, nach unten (0, -1, 0). Deine Kollision mit der Erde verhindert, dass du durch diese "Rutscht" und da diese Kollision eine Gegenkraft auswirkt mit selber Stärke, wie die der Erdanziehungskraft, bewegst du dich nicht (0, -1, 0) + (0, 1, 0) = (0,0,0). Beim Sprung lässt du eine weitere Kraft auf dich Wirken, die nach oben gerichtet ist (in die Sprungrichtung). Diese muss natürlich größer sein, als die Erdanziehungskraft. Also in etwa: (0, -1, 0) + (0, 1.5, 0) = (0, 0.5, 0). Du bewegst dich dann also kurzzeitig nach oben. Allerdings wirkt die Erdanziehungskraft im Gegensatz zu deiner ausgeübten Kraft ständig. Also bewegst du dich wieder nach unten. Aufgrund der Erdanziehungsbeschleunigung, passiert das nicht sofort, sondern linear beschleunigt:
- §\vec{a_g} = \begin{pmatrix}0 \\ -9.81 \\ 0\end{pmatrix}§ ist die Fallbeschleunigung
- §\vec{a_s} = \begin{pmatrix}0 \\ 1 \\ 0\end{pmatrix} * r§ ist die Beschleungigung für deinen Sprung, wobei §r§ die Stärke dieses Sprungs darstellen soll. Muss größer als 9.81 sein, damit überhaupt etwas passiert.
- §\vec{a_r} = \vec{a_g} + \vec{a_s}§ist die resultierende Beschleunigung
- Jetzt die resultierende Geschwindigkeit berechnen:
§\vec{v_r} = \vec{a_r} * t + \vec{v_0}§ wobei §t§ die Zeit sein sollte, die seit dem letzten Frame vergangen ist.- Damit kannst du jetzt eine Mögliche Kollision prüfen und die resultierende Geschwindigkeit aus dem Stoß berechnen.
Et voilà.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
Ohh ok da hatte ich wohl eine falsche Idee, aber diese ganzen Formeln und Zahlen sind irgendwie schwierig, kann mir mal bitte jmd. das so in Code vereinfachen, ich kapiere das irgendwie nicht
Werbeanzeige