2009-05-19 100 views
0

我有一個V(233,188)的速度矢量。速度矢量幫助

當原點爲V(0,0)時,它使對象以每秒300像素的速度朝向屏幕的右下側移動。

例如,當物體的位置是(592,334)時,我將速度矢量設置爲V(294,55),但物體並未開始朝着那個方向移動......它一直移動同一個方向,但似乎它使10度的小曲線...

我在做什麼是:

objectLocation += velocity * elapsedTime; 

我在做什麼錯?

+0

驗證對象的位置是否已更改(例如'velocity * elapsedTime'不是微不足道的)。另外,您可能需要做一些事情來強制在對象更改位置後重新繪製對象。 – ChrisW 2009-05-19 01:25:16

+0

不,不會,發生的事情是,對象開始移動的位置不是我設置的位置,例如,使用我提供的值,似乎對象向右轉10度的小曲線...我忘了添加此信息,對不起... – Paulo 2009-05-19 01:27:27

+0

在這種情況下,也許這是由於使用整數而不是浮點引起的「舍入錯誤」...你知道我的意思嗎?你有三件事,即'objectLocation','velocity'和'elapsedTime'......這些都是整數,還是浮點數,或者是什麼?你使用什麼編程語言? – ChrisW 2009-05-19 02:37:55

回答

1

(233,188)和(294,55)之間的差別並不大,在事物的宏偉計劃中。要驗證您的代碼正在工作,請嘗試使用諸如(200,-200)之類的向量。這將導致它實際上在y方向上反彈。

如果該代碼有效,那麼這只是您的值不起作用。