Je fais un jeu 2d dans lequel les unités tirent des flèches les unes sur les autres. Je connais la position du tireur et de la cible et la vitesse initiale du projectile. Je veux savoir l'angle que le projectile doit avoir pour atterrir sur la cible. La cible pourrait être à une hauteur différente de celle du tireur.
Pour résumer je connais v0, R et g et j'ai besoin de trouver l'angle (ou la hauteur?).
J'ai lu http://en.wikipedia.org/wiki/Projectile_motion , mais je ne trouve pas quelque chose en rapport avec ce dont j'ai besoin.
2d
projectile-physics
trajectory
korn3l
la source
la source
Réponses:
La formule pour trouver l'angle est
où v est la vitesse de lancement initiale, g est la constante de gravité, x et y sont la distance et la hauteur de la cible.
Les deux racines de cette équation vous donnent deux angles possibles. Si les résultats sont imaginaires, votre vitesse initiale n'est pas assez grande pour atteindre la cible (si vous voulez calculer l'angle de portée, lisez ceci ). C'est à vous de choisir l'angle sélectionné. Il serait judicieux de choisir le chemin le plus direct, c'est-à-dire l'angle le plus petit.
Vous pouvez voir un GIF de cette équation ci-dessous avec différentes valeurs cibles et une vitesse de lancement constante.
Ressources de cet article wikipedia
la source
Plus tôt cette année, j'ai créé un simple jeu de tir de haut en bas. J'ai utilisé la méthode suivante:
Réponse antérieure: /programming/15364852/move-sprite-diagonally/15365570#15365570
Il calcule une trajectoire entre deux positions.
la source