現在ゲームを作っています。
そのゲームの中で放物線を描く大砲を撃って敵に当てるということをしたいです。
放物線を描く事自体はできるのですが、
ターゲットに当てるための発射角度を求めることができません。
自分で考えてプログラミングしてみたのですが変な方向に飛んでいってしまいます。
let gravity = 0.03; let speed = 3; let x = 200; let y = 400; let target = {x: 300, y: 400}; let width = target.x - x; let height = target.y - y; let P = -1 * (width / (2 * speed * speed)) * gravity; let tan0 = (-width + Math.sqrt(width * width - (4 * P * (P - height)))) / (2 * P); let tan1 = (-width - Math.sqrt(width * width - (4 * P * (P - height)))) / (2 * P); let angle0 = Math.atan(tan0); let angle1 = Math.atan(tan1);
ターゲットに当てるための発射角度の求め方のアドバイスをいただけませんでしょうか?
[追記]
修正ありがとうございます。
手書きの方のPの計算方法が間違っていたので画像を上げ直しました。
[3-1. タイトルには要件を書きましょう] https://teratail.com/help/question-tips#questionTips3-1
回答1件
あなたの回答
tips
プレビュー