2010-12-22 144 views
1


我有一個由x,y和由標題,速度定義的向量定義的點。我試圖沿着這個向量移動點x,y,距離'速度'。下面是我目前使用的代碼:沿着一個向量移動一個點

self.x += self.speed * cos(self.heading); 
self.y += self.speed * sin(self.heading); 

標題可以是一個完整的圓的任何角度 - 0至2π(0-360度)。問題是上述代碼:

  • 僅沿着x或y軸移動時角度爲0-> 270
    • 例如,當化身面向右上角(相對45度),它直線上升。
  • 當角度爲270-不動彈> 360

航向,速度,X和Y都是雙和航向通過用戶觸摸在一個方向墊報下角。我知道標題是正確的,因爲化身旋轉到正確的方向,這只是我遇到問題的實際運動。

感謝所有幫助
克里斯 -

+0

看起來很對我。你確定self.speed和self.heading是正確的嗎? (他們都是原始的雙打,而不是NSNumbers?) – 2010-12-22 01:49:40

回答

2

移動直線上升會sin(90),不sin(45)。所以你在那裏有一些問題。

(​​這將只是繼續增加你的速度y和沒有x因爲cos(90) == 0)。