예제 #1
0
        private void UpdateStartMenu(KeyboardState kState, MouseState mState, GameTime gameTime)
        {
            if (MediaPlayer.State == MediaState.Stopped)
            {
                MediaPlayer.IsRepeating = true;
                MediaPlayer.Play(mainMenuMusic);
            }

            if (kState.IsKeyDown(Keys.Enter))
            {
                MediaPlayer.Stop();
                pressed   = true;
                gameState = GameState.Loading;
            }

            boutonExit.Update(kState, mState);
            boutonStart.Update(kState, mState);

            //Animated ball in background
            if (balleAnim.getEnable() == false)
            {
                balleAnim.setEnable(true);
            }
            boutonStart.checkBallCollision(balleAnim);
            boutonExit.checkBallCollision(balleAnim);
            balleAnim.checkBallCollision(balleAnim2.getLocation());
            balleAnim2.checkBallCollision(balleAnim.getLocation());
            soundEngineInstance = balleMur.CreateInstance();
            balleAnim.Update(kState, gameTime, soundEngineInstance);
            if (balleAnim2.getEnable() == false)
            {
                balleAnim2.setEnable(true);
            }
            boutonExit.checkBallCollision(balleAnim2);
            boutonStart.checkBallCollision(balleAnim2);
            balleAnim2.Update(kState, gameTime, soundEngineInstance);
        }
예제 #2
0
        private void UpdatePlaying(GameTime gameTime, KeyboardState state)
        {
            if (MediaPlayer.State == MediaState.Playing)
            {
                MediaPlayer.Volume = 0.20f;
            }
            if (MediaPlayer.State == MediaState.Stopped)
            {
                MediaPlayer.IsRepeating = true;
                MediaPlayer.Volume      = 0.25f;
                MediaPlayer.Play(gameMusic);
            }

            if (balle.getEnable() == false)
            {
                balle.setPositionX(palette.getPositionX() + 40);
            }

            // Vérification si balle sort par le bas de l'écran
            soundEngineInstance = death.CreateInstance();
            if (balle.getPositionY() > screenBound.Bottom)
            {
                lives        -= 1;
                hearts[lives] = null;
                hearts.Remove(hearts[lives]);
                if (lives == 0)
                {
                    LoadContent();
                }
                Texture2D balleSprite = Content.Load <Texture2D>("balle");
                balle = new Balle(balleSprite, screenBound, new Vector2(screenBound.Width / 2 - 10, screenBound.Height - 70), new Vector2(0, 1), false);
                palette.returnToStart();
                balle.setEnable(false);

                soundEngineInstance.Volume = 0.50f;
                soundEngineInstance.Play();
            }


            if (state.IsKeyDown(Keys.Enter))
            {
                pressed   = true;
                gameState = GameState.Paused;
            }

            // Update la position de la palette
            palette.Update(state);

            // Update position de la balle + vérification collision avec mur
            soundEngineInstance = balleMur.CreateInstance();
            balle.Update(state, gameTime, soundEngineInstance);

            // Vérification collision balle avec palette
            soundEngineInstance = ballePalette.CreateInstance();
            balle.checkPaddleCollision(palette.getLocation(), soundEngineInstance);

            // Vérification collision balle avec briques
            soundEngineInstance = explosionBrique.CreateInstance();
            for (int i = 0; i < briques.Count; ++i)
            {
                if (balle.checkBrickCollision(briques[i].getLocation()))
                {
                    briques[i].setHp(briques[i].getHp() - 1);
                    if (briques[i].getHp() == 0)
                    {
                        briques[i] = null;
                        briques.Remove(briques[i]);

                        soundEngineInstance.Volume = 0.50f;
                        soundEngineInstance.Play();
                    }
                    else
                    {
                        briques[i].setColor(Color.LightBlue);
                    }
                    if (briques.Count == 0)
                    {
                        LoadContent();
                    }
                }
            }
        }