public override void Update(GameTime gameTime) { // for managing the scenes var keyState = Keyboard.GetState(); if (keyState.IsKeyDown(Keys.J)) { _showEndScene(); } if (_endScene) { _timeElapsed += (float)gameTime.ElapsedGameTime.TotalSeconds; if (_timeElapsed > TimeToUpdate) { State = 1; } return; } // check if a player can aim if ((!Rocket.RocketFlying) && (_explosion.ParticleList.Count == 0)) { ProcessKeyboard(); } if (Rocket.RocketFlying) { var terrainCollisionPoint = _rocket.CheckTerrainCollision(gameTime, _textureCenter.ForegroundColorArray); var playerCollisionPoint = CheckPlayersCollision(); CheckBirdsCollision(gameTime); if (terrainCollisionPoint.X > -1) { Debug.WriteLine("Rocket hit terrain"); AddExplosion(terrainCollisionPoint, terrainExplosionParticles, terrainExplosionSize, terrainExplosionMaxAge, gameTime); SoundCenter.HitTerrain.Play(); NextPlayer(); } else if (playerCollisionPoint.X > -1) { Debug.WriteLine("Rocket hit player"); AddExplosion(playerCollisionPoint, playerExplosionParticles, playerExplosionSize, playerExplosionMaxAge, gameTime); SoundCenter.HitCannon.Play(); NextPlayer(); } else if (_rocket.CheckOutOfScreen()) { NextPlayer(); } } base.Update(gameTime); }