我在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);
答案 0 :(得分:1)
您似乎只使用Vector2 _ShotDownPosition
来管理镜头而这是错误的。您需要List<Vector2>
个项目符号,或者创建一个类Bullet
或其他任何内容,以便为每个项目符号创建一个新对象,如 Ondrej 所评论。