オブジェクトを目的地 (両方とも Vector3 で表される) に一定の速度で移動しようとしています。
設定:
destination = gkVector3(1.0f, 0.0f, 1.0f);
myObj = gkVector3(0.0f, 0.0f, 0.0f);
velocity = 0.1;
ループ:
gkVector3 direction = destination - myObj;
myObj = myObj + direction * velocity;
if(myObj == destination) {
gkPrintf("THE SAME!!!!");
}
次に、オブジェクトが目的地に到達したかどうかを確認したいと思います。はいの場合、メッセージが表示されます。速度が 1.0 に設定されている場合、まったく問題はありません。しかし、たとえば速度を 0.1 に設定すると、オブジェクトは目的地に到達せず、メッセージは表示されません。では、オブジェクトを正確に目的地まで一定の速度で移動するにはどうすればよいでしょうか?
*gkVector3 は Ogre3D Vector3 を表します