射击多发子弹

时间:2013-12-26 12:45:53

标签: c# xna

我在XNA中制作了一个太空入侵者的变种。我现在必须让我的船开枪。它拍摄正确,但是当我再次拍摄时,它重新拍摄,使最后一个消失。关于如何解决这个问题的任何想法? (如果屏幕上有多个镜头,我希望我的镜头不会消失)

这是我创建镜头的代码:

if (_keyboardState.IsKeyDown(Keys.Up))
{
   _ShotDownPosition.X = _ShipDownPosition.X + (_ShipDown.Width / 2) - (_ShotDown.Width/2);
   _ShotDownPosition.Y = _ShipDownPosition.Y - (_ShotDown.Height/2);
   shotDown = true;
}

这是我移动镜头的代码:

if (shotDown == true)
{
   _ShotDownDisplacement = _DisplacementUp;
}
_ShotDownPosition += _ShotDownDisplacement * _ShotSpeed * (float)gameTime.ElapsedGameTime.TotalMilliseconds;

知道:

_DisplacementRight = new Vector2(1, 0);
_DisplacementLeft = new Vector2(-1, 0);
_DisplacementUp = new Vector2 (0, -1);
_DisplacementDown = new Vector2(0, 1);

1 个答案:

答案 0 :(得分:1)

您似乎只使用Vector2 _ShotDownPosition来管理镜头而这是错误的。您需要List<Vector2>个项目符号,或者创建一个类Bullet或其他任何内容,以便为每个项目符号创建一个新对象,如 Ondrej 所评论。