C# XNA-比例方向矢量3

C# XNA-比例方向矢量3,c#,vector,xna,C#,Vector,Xna,我有一个小型太空射手,我有炮塔射击我的战斗机 炮塔用这个简单的数学向我的战斗机发射炮弹: Vector3 destination = mTarget; Vector3 origin = mPosition; Movement = destination - origin; Movement .Normalize(); mPosition += Movement * speed; 现在一切正常,炮弹向我的战斗机开火 然而,当炮塔发射炮弹时,一旦炮弹击中战斗机所在的位置,炮弹就会停止飞行。基本上,

我有一个小型太空射手,我有炮塔射击我的战斗机

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

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();
//按距离
浮动距离=(目的地-原点).Length();
距离*=1.1;//将超额支付10%
...
位置+=移动*速度;
距离-=速度;//运动长度是其中之一

若(距离)显示你们的代码“缩放/乘以向量移动的方向”嘿,狐猴!我刚刚解决了我的问题-一些轻微的重组使它起作用:编辑你们自己的答案,除了它,这将帮助你们获得更多的代表性,人们不会仍然回答它,并包括你们的代码,以防其他人感兴趣