targetSpeed,targetVelocity到达函数

时间:2014-04-09 03:51:31

标签: c++ game-physics

我无法弄清楚等式是什么来找到目标的速度。我正在使用sf :: Vector2f在2D游戏中找到到达函数。我只需要目标速度的等式。任何人都可以帮我一点吗?这是我到目前为止所拥有的。

void Steering::Arrival( sf::Vector2f position, sf::Vector2f target, float maxSpeed, float maxAcceleration, float timeToTarget, float slowRadius, float targetRadius, float targetSpeed, double distance, SteeringOutput& steering ){

timeToTarget = 0.1;

steering.linear = target - position;
distance = sqrt( steering.linear.x * steering.linear.x + steering.linear.y * steering.linear.y);
targetSpeed = maxSpeed * distance / slowRadius;

//Check if arrived at target
if (distance < targetRadius)
{
    MathHelper::ZeroVector;
}

//Check if we are out of the slowRadius
if (distance > slowRadius)
{
    targetSpeed = maxSpeed;
}
else
{
    targetSpeed = maxSpeed * distance / slowRadius;
}

提前谢谢。

1 个答案:

答案 0 :(得分:0)

目标速度=(从位置到目标的单位矢量)*(目标速度)。 如果您需要预先定位,请搜索“卡尔曼过滤器”