我一直在摆弄MathHelp.Lerp();试图找到最简单的方法来旋转导弹的行进方向。现在它会立即朝着播放器/鼠标的方向发展。
Larp是最好用的还是其他类型的方向旋转是我应该追求的? Latest post,example of what I mean。
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);
}
让图像随着导弹的方向旋转也是我一直在寻找并试图找出的东西。当方向旋转时,我如何旋转图像?
答案 0 :(得分:0)
如果使用速度移动导弹,则可以使用此代码(可能需要对其进行标准化)。从头上写。
rotation = -(float)Math.Atan2(velocity.Y, velocity.X);
所以如果你的速度是(1,0)意味着你的misslile从左到右直线。 Atan2(1,0)
会给你1.57个辐射(90度)。为了使这个工作,你的导弹质地必须面朝上。这段代码会把它转到90度,在右边。