Ich mache ein 2D-Spiel, in dem Einheiten Pfeile aufeinander schießen. Ich kenne die Position des Schützen und des Ziels sowie die Anfangsgeschwindigkeit des Projektils. Ich möchte wissen, welchen Winkel das Projektil haben sollte, um auf dem Ziel zu landen. Das Ziel könnte sich auf einer anderen Höhe als der Schütze befinden.
Zusammenfassend kenne ich v0, R und g und muss den Winkel (oder die Höhe?) Finden.
Ich habe http://en.wikipedia.org/wiki/Projectile_motion gelesen , aber ich kann nichts finden, was mit dem zusammenhängt, was ich brauche.
2d
projectile-physics
trajectory
korn3l
quelle
quelle
Antworten:
Die Formel zum Ermitteln des Winkels lautet
Dabei ist v die anfängliche Startgeschwindigkeit, g die Schwerkraftkonstante, x und y die Entfernung und Höhe des Ziels.
Die beiden Wurzeln dieser Gleichung geben Ihnen zwei mögliche Winkel. Wenn die Ergebnisse imaginär sind, ist Ihre Anfangsgeschwindigkeit nicht groß genug, um das Ziel zu erreichen (wenn Sie den Erreichungswinkel berechnen möchten, lesen Sie dies ). Es liegt an Ihnen, welcher Winkel ausgewählt wird. Es wäre sinnvoll, den direktesten Weg zu wählen, dh den kleineren Winkel.
Unten sehen Sie ein GIF dieser Gleichung mit unterschiedlichen Zielwerten und einer konstanten Startgeschwindigkeit.
Ressourcen aus diesem Wikipedia- Artikel
quelle
Anfang dieses Jahres habe ich einen einfachen Top-Down-Shooter erstellt. Ich habe die folgende Methode verwendet:
Frühere Antwort: /programming/15364852/move-sprite-diagonally/15365570#15365570
Es berechnet eine Flugbahn zwischen zwei Positionen.
quelle