我一直在尝试使用向量以一定角度移动对象,并且确实可以正常工作,但是,当我尝试将对象移动到特定点时,它会到达那里然后消失。在我的代码中,我测试它是否会在下一步中到达目的地,如果会,我将其捕捉到目的地。
void Dot::moveToVector(Vector& vec)
{
float dx;
float dy;
dx = vec.X - position.X;
dy = vec.Y - position.Y;
Vector distanceVec(dx, dy);
float distance = distanceVec.Length();
float scale;
scale = speed / distance;
velocity.X = dx * scale;
velocity.Y = dy * scale;
if(velocity.X < scale || velocity.Y < scale)
{
velocity.X = 0;
velocity.Y = 0;
position.X = vec.X;
position.Y = vec.Y;
}
move();
}
当我调试它时,它卡入位置后的一帧,位置的 x 和 y 值 = -nan(0x400000)。