1

我有一个小型太空射击游戏,我有炮塔向我的战斗机射击。

炮塔使用这个简单的数学向我的战斗机发射炮弹:

Vector3 destination = mTarget;
Vector3 origin = mPosition;
Movement = destination - origin;
Movement .Normalize();
mPosition += Movement * speed;

现在这工作正常,弹丸向我的战斗机开火。

但是- 弹丸一旦击中炮塔射击该弹丸时战斗机所在的位置就会停止 - 基本上,我希望弹丸继续沿着其方向矢量移动,无论它是否通过了船所在的点。

我尝试缩放/乘以矢量移动的方向,但没有任何效果。提前致谢

4

1 回答 1

0

改变你的结束条件...

 // 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();
于 2012-05-14T06:19:45.157 回答