protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Black); //Fond noir pour le debut SpriteBatch.Begin(); //Debut du draw if (MenuLaunch) //Si le menu est lancer { GraphicM.MainGraph(ScreenX, ScreenY, SpriteBatch); // Dessine les elements deco du MainMenu MainM.MainDraw(ScreenX, ScreenY, SpriteBatch); // Dessine les elements interactifs du MainMenu } else { GraphicsDevice.Clear(Color.Blue); //Fond bleu (on ne le voit pas donc pas forcement utile) if (IngameM.IngameLaunched()) { IngameM.IngameDraw(ScreenX, ScreenY, SpriteBatch); // Dessine le MenuIngame } else { SpriteBatch.End(); //On arrete le draw en cours car l'on va maintenant utiliser la camera SpriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, SamplerState.PointClamp, null, null, null, _camera.GetTransformation()); //On recommence le draw mais avec la camera Decor.DrawDecors(SpriteBatch); //Draw le decors for (int i = 0; i < Enemis.Length; i++) //Dessine les enemis { Enemis[i].Draw(SpriteBatch); } joueur.Draw(SpriteBatch); // Dessine le Joueur for (int i = 0; i < life; i++) // Dessine la Vie { SLife[i].Draw(SpriteBatch); } for (int i = 0; i < mana; i++) // Dessine le Mana { SMana[i].Draw(SpriteBatch); } if (life <= 0) //Dessine game over si on est plus de vie { SpriteBatch.Draw(GameOver.Texture, new Rectangle((int)_camera.Position.X - ScreenX / 2, (int)_camera.Position.Y - ScreenY / 2, ScreenX, ScreenY), Color.White); SpriteBatch.DrawString(GameOverString, "Appuyer sur Entree pour quitter", new Vector2(_camera.Position.X - ScreenX / 4, _camera.Position.Y - 60), Color.Green); } } } SpriteBatch.End(); //Fin base.Draw(gameTime); }
protected override void Update(GameTime gameTime) { if (Utils.Down(Keys.Enter) && (MainM.ChoiceMainMenu(MenuLaunch) == 5 || IngameM.ingameMenuPos[IngameM.ChoiceIngameMenu()] == "Quitter vers le Bureau") || (life <= 0 && Utils.Down(Keys.Enter))) { Exit(); //On quitte si on est sur quitter dans l'un des menus ou si on est sur gameover et qu'on fait entrer } if (MenuLaunch && MainM.ChoiceMainMenu(MenuLaunch) == 0 && Utils.Down(Keys.Enter)) { MenuLaunch = false; // Stop le MainMenu Initialize(); // Initialise le Jeu } else if (Utils.Down(Keys.Enter) && IngameM.ingameMenuPos[IngameM.ChoiceIngameMenu()] == "Quitter vers le Menu Principal") { MenuLaunch = true; // Lance le MainMenu IngameM.InitIngameMenu(); // Initialise le IngameMenu MainM.InitMainMenu(); // Initialise le MainMenu } if (MenuLaunch == false) //Verifie que le menu soit fermer { joueur.Update(Decor.DecorCol, Decor.back, Enemis, gameTime); //Update le joueur IA.MovIA(joueur, Enemis, Decor.DecorCol, Content); //Update l'enemis _camera.CameraMouvement(joueur); //Update la camera } if (gameTime.TotalGameTime.Seconds % 10 == 0 && mana < 200) { mana++; } if (gameTime.TotalGameTime.Seconds % 30 == 0 && life < 100) { life++; } base.Update(gameTime); }