MathHelper.Lerp归航导弹

时间:2014-04-15 12:43:48

标签: c# math xna rotation

我需要帮助创建一个朝向目标的导航导弹我获得了信息并且能够这样做但是我一直在研究MathHelper.Lerp,我被指示尝试使用{{ 3}},并没有找到一种可靠的方法来旋转导弹的方向。

    protected override void Update(GameTime gameTime)
    {
        mouse = Mouse.GetState();
        mousePosition = new Vector2(mouse.X, mouse.Y);

        delta = (float)gameTime.ElapsedGameTime.TotalSeconds * Speed;

        direction = mousePosition - missilePosition;
        direction.Normalize();
        missilePosition += direction * delta;

        d.X = mouse.X - missilePosition.X;
        d.Y = mouse.Y - missilePosition.Y;

        distance = Math.Sqrt((d.X * d.X) + (d.Y * d.Y));

        v.X += d.X * turning;
        v.X += d.X * turning;

        Velocity = Math.Sqrt((v.X * v.X) + (v.Y * v.Y));

我如何使用lerp旋转方向以使导弹缓慢转动?

1 个答案:

答案 0 :(得分:0)

在计算导弹前进的方向时尝试这样的事情:

Vector2 direction = Vector2.Lerp(mousePosition, missilePosition, 0.5f);

这将朝着您想要的方向获得50%的方向。