Ejemplo n.º 1
0
 /// <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);
 }
Ejemplo n.º 2
0
 /// <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);
 }
Ejemplo n.º 3
0
        /// <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();
                }
            }
        }