导弹旋转图像和方向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);
}
让图像随导弹的方向旋转也是我一直在寻找并试图弄清楚的事情。如何让图像随着方向旋转呢?
如果您使用速度来移动您的导弹,您可以使用此代码(也许您需要将其规范化)。从头开始写
rotation = -(float)Math.Atan2(velocity.Y, velocity.X);
所以如果你的速度是(1,0)意味着你的导弹从左到右直线飞行。Atan2(1,0)
会给你1.57弧度(90度)。要做到这一点,你的导弹的纹理必须面对。这段代码将把它转向90度,向右