XNA - 刻度方向矢量3
本文关键字:方向 XNA | 更新日期: 2023-09-27 18:33:59
我有一个小型太空射击游戏,其中有炮塔向我的战斗机射击。
炮塔使用这个简单的数学向我的战斗机发射弹丸:
Vector3 destination = mTarget;
Vector3 origin = mPosition;
Movement = destination - origin;
Movement .Normalize();
mPosition += Movement * speed;
现在这工作正常,弹丸向我的战斗机开火。
然而 - 一旦弹丸击中炮塔射击该弹丸时战斗机所处的位置,它就会停止 - 基本上,我希望弹丸继续沿其方向矢量移动,无论它是否通过船所在的点。
我尝试缩放/乘以矢量移动的方向,但没有任何效果。提前致谢
更改您的结束条件...
// by distance
float distance = (destination - origin).Length();
distance *= 1.1; // Will overpassed by 10%
...
mPosition += Movement * Speed;
distance -= Speed; // Movement lenght is one
if (distance<0) destroy_bullet();
// by position
mPosition += Movement * Speed;
if (!Screen.Bounds.Contains(mPosition)) destroy_bullet();