我正在Flash中使用Box2D實現一個簡單的排球比賽。我需要爲CPU播放器實現一些AI。我們叫他傑克吧。所以傑克需要預測球被人類球員約翰擊中後球會落在哪裏。我有以下信息:預測球路徑 - 人工智能
- 初始線速度(無論是在X & y方向)的球,當約翰 撞擊它。
- John擊中球時的初始位置。 (x & y座標 值)
- 重力的值。
- 樓層的y位置值是球會落下的位置。
- 約翰擊球的角度。
- 球遵循射彈軌跡。
因此,傑克需要預測當它碰到地板時球的位置(x值)是多少。
我覺得把球遵循彈道軌跡的問題,可能會被視爲相同的 - 從一些已知的初始位置,已知初始速度與固定重力發射炮彈,並預測其着陸點。着陸點的y值也是已知的。空氣阻力爲零。
有什麼樣的數學公式可能有助於預測着陸點的x值嗎?我看了一些拋射方程式,但其中大多數都以'時間'作爲變量。我需要一個不涉及這個'時間'變量的解決方案。任何形式的這個問題的解決方法也將不勝感激。謝謝! :)
這不是人造智能,而是外部彈道學。我認爲AI會在晚些時候進來。 – 2011-05-10 17:59:50
無論如何,你的排球比賽是否必須模擬球的運動?爲什麼不在AI部分使用同樣的東西?實際上,我認爲,預先計算一次軌跡並將其用於時間演變和AI行動是完全正確的。也許通過在頂部添加一些隨機錯誤來降低AI的運行軌跡,從而調整Jack的遊戲質量?找到第一次地面接觸的地方將僅僅是軌跡上的後處理步驟。 – 2011-05-10 18:01:37
@大衛 - 是的,你可以這麼說!但是關於「人工智能遊戲開發」的大部分書籍都包含了預測彈丸軌跡的主題。 :) @Tilman - 實際上,先生,我使用Box2D來模擬球的運動和碰撞,它負責處理所有這些數學問題。所以我不能使用它,直到我真正瞭解這背後的數學。我很感謝你的建議,但如果我不知道方程式,恐怕我無法預先計算軌跡運動。 – 2011-05-10 18:31:18