/// <summary> /// /// </summary> /// <param name="x"></param> /// <param name="y"></param> public void AddEnemyRocket(float x, float y) { var rocket = new Rocket(); rocket.SpriteTexture = _rocketTexture; rocket.SpritePosition = new Vector2(x, y); _enemyRockets.Add(rocket); }
/// <summary> /// /// </summary> public void AddRocket() { var rocket = new Rocket(); rocket.SpriteTexture = _rocketTexture; rocket.SpritePosition = new Vector2( _spaceShip.SpritePosition.X + _spaceShip.SpriteTexture.Width / 15, _spaceShip.SpritePosition.Y); _rockets.Add(rocket); }
/// <summary> /// /// </summary> /// <param name="sprites"></param> /// <param name="framesCount"></param> /// <param name="pointsForKill"></param> private void _SolveEnemiesCollisions(AnimatedSprite[] sprites, int framesCount, uint pointsForKill) { // Solve collisions between boxes. var distance = _window.ClientBounds.Width - GameModel.XDistanceBetweenSprites; foreach (var enemy in sprites) { var maxValue = distance - enemy.SpriteTexture.Width / 4; var rocket = new Rocket(); if ((rocket = _IsRocketBitTheEnemy(enemy.BoundingBox)) != null) { // Recalculate position of the bugs... (could be BOOOM! or POINTS++). enemy.SpritePosition = new Vector2( _randomizer.Next(GameModel.LeftDisplayBorder, maxValue), -GameModel.YDistanceBetweenSprites); _model.Rockets.Remove(rocket); AudioPlayer.PlayEnemyDestroyed(); GameState.CurrentScore += pointsForKill; } if (_model.SpaceShip.BoundingBox.Intersects(enemy.BoundingBox)) { // Recalculate position of the bugs... (could be BOOOM! or POINTS++). enemy.SpritePosition = new Vector2( _randomizer.Next(GameModel.LeftDisplayBorder, maxValue), -GameModel.YDistanceBetweenSprites); if (_model.Lives.Count > 1) { _model.RemoveLive(); TimeSpan span = AudioPlayer.PlayEnemySuperShoot(); } else _GameOver(); } } }