protected override void Update(GameTime gameTime) { if (Keyboard.GetState().IsKeyDown(Keys.Escape)) Exit(); _mouse.Update(); _referenceLine.Update(); if (_mouse.LeftDown) { _initialPosition = _mouse.Position; } else if (_mouse.LeftUp) { var direction = _mouse.Position - _initialPosition; var angle = (float)Math.Atan2(direction.Y, direction.X); var arrow = new Arrow(_initialPosition, angle, direction.Length() * 3, _arrowTexture); _arrows.Add(arrow); } var frameTime = (float)gameTime.ElapsedGameTime.TotalSeconds; foreach (var arrow in _arrows) { if (arrow == null) break; arrow.Update(frameTime); } base.Update(gameTime); }