2009-05-19 11 views
0

私は速度ベクトルV(233、188)を持っています。速度ベクトルのヘルプ

原点がV(0、0)のとき、オブジェクトは画面の右下側に300ピクセル/秒で移動します。

オブジェクトの位置がたとえば(592,334)の場合、速度ベクトルをV(294,55)に設定しますが、オブジェクトはその方​​向に向かって移動を開始しません。同じ方向が、私がやっている

何...それは10度の小さなカーブを作るということらしいです。

objectLocation += velocity * elapsedTime; 

私が間違って何をしているのですか?

+0

オブジェクトの位置が変更されていることを確認します(例: 'velocity * elapsedTime'は重要ではありません)。また、オブジェクトの位置が変更された後でオブジェクトの再ペイントを強制するには、何かを行う必要があります。 – ChrisW

+0

いいえ、何も起こりません、オブジェクトが移動を開始する場所は、私が指定した値を使用して設定したものではなく、オブジェクトが右に10度曲がっているようです...私は忘れてしまいましたこの情報を追加、申し訳ありません... – Paulo

+0

その場合は多分浮動小数点の代わりに整数を使用することによって引き起こされる "丸め誤差"です...私は何を意味するか知っていますか? 'objectLocation'、 'velocity'、 'elapsedTime'の3つのものがあります。これらのすべての整数、浮動小数点、または何ですか?どのようなプログラミング言語を使用していますか? – ChrisW

答えて

1

(233,188)と(294,55)の違いは、物事の壮大な計画ではあまりありません。コードが動作していることを確認するには、(200、-200)などのベクトルを試してください。それは実際にy方向の点から跳ね返るでしょう。

そのコードが機能する場合、それは機能していない値だけです。