示例#1
0
        // Fonction pour mettre à jour le jeu
        protected override void Update(GameTime gameTime)
        {
            //Inputs
            InputManager.GetInputs();
            if (InputManager.IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            //Update du jeu si on n'a pas perdu
            if (!gameover)
            {
                Player player = (Player)entities[PLAYER_INDEX];

                //Gestion de la map vide
                if (map.IsEmpty)
                {
                    map.ResetMap();
                    for (int i = 0; i < FANTOMS_INDEX; i++)
                    {
                        entities[i].ResetPosition();
                    }
                    player.ResetPosition();
                }

                //Gestion de la mort
                if (player.IsDead)
                {
                    for (int i = 0; i < FANTOMS_INDEX; i++)
                    {
                        entities[i].ResetPosition();
                    }
                    player.ResetPosition();
                    player.IsDead = false;
                }

                //Update de tout le monde
                foreach (Entity e in entities)
                {
                    e.Update(map, entities);
                }

                //Gestion de fin de partie
                if (player.Lives == 0)
                {
                    gameover = true;
                }
            }
            else // Sinon on attend juste un appuie sur R ou Echap
            {
                if (InputManager.IsKeyDown(Keys.R))
                {
                    gameover = false;
                    Initialize();
                }
            }

            base.Update(gameTime);
        }