2012-12-29 124 views
4

我正在爲基於角度和速度的遊戲AI編程一些運動。它是基於x,y軸的2D程序。我現在有一個位置矢量,以及一個速度矢量,它說明了AI的速度和當前方向。每次移動AI時,我只需將速度矢量添加到當前位置即可獲得我的新位置。此刻運動是8方向的。我想實現的是基於角度的運動(更現實的運動類型),並想知道是否可以從角度和速度常量計算速度矢量。根據角度和速度查找速度矢量

在此先感謝!

+1

看看任何基本的線性代數書。 (或者在紙上試一下。) – MrSmith42

回答

13

這更好是可能的。

我這是怎麼設想你的程序工作

position_X += velocity_X 
position_Y += velocity_Y 

通過三角函數,你可以做

velocity_X = velocity*cos(angle) 
velocity_Y = velocity*sin(angle) 

enter image description here

有幾件事情要記住包括

  1. 摩斯t可能Y隨着你從上到下而增加
  2. 反向問題有兩個解決方案,你應該看看2個輸入反正切函數。見https://gamedev.stackexchange.com/questions/14602/what-are-atan-and-atan2-used-for-in-games