代码:
我有一个功能如下:
bool Action::approach (img_comp &mover, sf::Vector2f start, sf::Vector2f end, int speed)
{
//Get the change in x and y
float delta_x = (end.x - start.x) / speed;
float delta_y = (end.y - start.y) / speed;
//Move the sprite
mover.sprite.move(delta_x, delta_y);
//Check if the sprite has met the end
if (mover.sprite.getPosition() == end)
return true;
return false;
}
(其中sf::Vector2f
基本上是一个带有x
和y
浮点参数的结构,例如 xy 网格上的一个点)
问题:
不出所料,由于float
. 在这种情况下,我使用什么算法让我的精灵准确地落在end
点上,而不管四舍五入?
注意:宽容不是我问题的答案。这只是一种妥协。我想要第一次完美选择点的算法,不管任何舍入。如果这是不可能的,请告诉我。