2008年6月2日 星期一

Pygame : 人物跟著滑鼠旋轉

在遊戲裡面常常會用滑鼠來控制角色的移動, 而滑鼠目前的位置和人物的連線會被當作是人物正面朝向的方向. 這裡簡單的用python裡面的math module來計算人物和滑鼠位置的夾角.

首先介紹三角函數的arc function :
atan(x) : x 代表弧度(radians)
atan2(y, x) : 計算atan(y/x)的弧度, 回傳的值在-pi和pi之間. 因為有給(x,y)的座標, 所以能判斷座 標是在那個象限裡面, 也就能知道正確的方位.

radians(x) : 把角度(degree)轉成弧度(radian)
degrees(x) : 把弧度轉成角度

因為人物移動的時候也可以用鍵盤做細微的移動, 所以角度的儲存是以degree方式儲存.

所以要讓人物面向滑鼠目前方向的角度為 :
rotate = math.degrees(math.atan2(x, y))

參考資料 :
http://docs.python.org/lib/module-math.html

沒有留言: