我要创建的内容
问题
导弹是如何向玩家移动的。
如何使导弹移动,使其不会立即直接向玩家移动(缓慢移动一个角度)。
我有一个鼠标的公式是"播放器"和导弹走向它。
mouse = Mouse.GetState();
mousePosition = new Vector2(mouse.X, mouse.Y);
A = (mouse.X - Position.X);
B = (mouse.Y - Position.Y);
C = (A * A) + (B * B);
C = (float)Math.Sqrt(C);
Angle1 = A / C;
Angle2 = B / C;
(绘图是最好的!)
这只能获得从导弹到玩家的距离,现在我需要找到移动导弹的角度或东西,我需要做什么?
答案 0 :(得分:1)
您可以获得从一个点到另一个点的距离,并将其转换为指向的方向。
//Find the delta time
float delta = (float)gameTime.ElapsedGameTime.TotalSeconds * 60;
//Find the direction
Vector2 direction = mousePosition - misslePosition;
direction.Normalize();
//Move towards it
currentPos += direction * delta;
它需要乘以经过的时间,因此无论你运行什么FPS,它都显得相同。
您可能需要调整速度,但应创建如下模式:
如果你想让导弹慢慢转向目标,你可以尝试MathHelper.Lerp
来慢慢改变角度。