我正在尝试创造什么
- 一个会向玩家发射导弹的物体,如果它与玩家相撞,玩家就会死亡。
问题
我有一个公式,让鼠标成为“玩家”,而导弹则朝它飞去。
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;
(画画是最好的!)
这只能获取导弹到玩家的距离,现在我需要找到角度或其他东西来移动导弹,我需要做什么?
您可以获得从一点到另一点的距离,并将其转化为要去的方向。
//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
慢慢改变角度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)