XNA - 比例方向Vector3

时间:2012-05-14 00:34:39

标签: c# vector xna

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

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

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

现在这个工作正常,射弹向我的战斗机射击。

但是 - 当炮塔射击那个炮弹时,射弹然后停在击中战斗机的位置 - 基本上,我希望射弹沿着它的方向向量继续移动,无论它是否通过了船开了。

我尝试缩放/乘以向量移动的方向,但没有工作。提前致谢

1 个答案:

答案 0 :(得分: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();