导弹旋转图像和方向c#

本文关键字:方向 图像 旋转 | 更新日期: 2023-09-27 17:54:22

我一直在摆弄MathHelp.Lerp();试图找到最简单的方法来旋转导弹的飞行方向。现在,它会立即向玩家/鼠标所在的方向移动。

Larp是最好的选择吗?还是我应该追求其他类型的方向旋转?最新的帖子,我的意思的例子。

    protected override void Update(GameTime gameTime)
    {
        // Allows the game to exit
        if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            this.Exit();
        delta = (float)gameTime.ElapsedGameTime.TotalSeconds * Speed;
        direction = mousePosition - missilePosition;
        direction.Normalize();
        missilePosition += direction * delta;
        //missilePosition = Vector2.Lerp(missilePosition, mousePosition, 2.0f);
        mouse = Mouse.GetState();
        mousePosition = new Vector2(mouse.X, mouse.Y);
        base.Update(gameTime);
    }

让图像随导弹的方向旋转也是我一直在寻找并试图弄清楚的事情。如何让图像随着方向旋转呢?

导弹旋转图像和方向c#

如果您使用速度来移动您的导弹,您可以使用此代码(也许您需要将其规范化)。从头开始写

rotation = -(float)Math.Atan2(velocity.Y, velocity.X);

所以如果你的速度是(1,0)意味着你的导弹从左到右直线飞行。Atan2(1,0)会给你1.57弧度(90度)。要做到这一点,你的导弹的纹理必须面对。这段代码将把它转向90度,向右