public override void Initialize() { test = new Afficheur3D(Game); test.Initialize(); NbSommets = NB_TRIANGLES_MURS + 2; NbSommetsMurs = NB_TRIANGLES_MURS + 2; NbSommetsToit = NB_TRIANGLES_TOIT * NB_SOMMETS_PAR_TRIANGLE; CréerTableauSommets(); BoxDeCollision = new BoundingBox(PositionInitiale - new Vector3(Étendue.X / 2f, 0, Étendue.Z / 2f) * HomothétieInitiale - new Vector3(0, PositionInitiale.Y, 0), PositionInitiale + new Vector3(Étendue.X / 2f, 0, Étendue.Z / 2f) * HomothétieInitiale - new Vector3(0, PositionInitiale.Y, 0) /*HomothétieInitiale*Étendue.X / 2*/); base.Initialize(); Visible = false; }
void CommencerPartie() { Chanson.Play(); CaméraJeu.ResetCaméra(PositionCaméra, CibleCaméra, OVCaméra); TempsRestantB = TempsDePartie; TempsRestantN = TempsDePartie; TempsÉcrit = ((int)(TempsDePartie / 60)).ToString() + ":" + ((int)(TempsDePartie % 60)).ToString(); ArrièrePlanDéroulant.ModifierActivation(); Components.Add(PartiEnCours = new Partie(this, TempsDePartie, NomMap, CouleursÉchiquier, OrigineÉchiquier)); Components.Add(UnAfficheurFPS = new AfficheurFps(this, "Arial", Color.Blue, INTERVALLE_CALCUL_FPS)); Components.Add(TempsB = new TexteAffichable(this, "Arial", TempsÉcrit, new Vector2((GraphicsDevice.Viewport.Width - UnAfficheurFPS.PositionDroiteBas.X), UnAfficheurFPS.PositionDroiteBas.Y), Color.White, 1f)); Components.Add(TempsN = new TexteAffichable(this, "Arial", TempsÉcrit, new Vector2((GraphicsDevice.Viewport.Width - UnAfficheurFPS.PositionDroiteBas.X), UnAfficheurFPS.PositionDroiteBas.Y), Color.Black, 1f)); Components.Add(unAfficheur3D = new Afficheur3D(this)); }
protected override void Update(GameTime gameTime) { float tempsÉcoulé = (float)gameTime.ElapsedGameTime.TotalSeconds; TempsÉcouléDepuisMAJ += tempsÉcoulé; if (TempsÉcouléDepuisMAJ > INTERVALLE_MAJ_STANDARD) { switch (CurrentGameState) { case GameState.MenuPrincipal: if (GestionInput.EstNouvelleTouche(Keys.Escape)) { this.Exit(); } if (B1.Clicked == true) { DéterminerSettings(); CommencerPartie(); VoilerBoutons(0, 2); CurrentGameState = GameState.EnJeu; } if (B2.Clicked == true) { CurrentGameState = GameState.Options; VoilerBoutons(0, 2); AfficherBoutons(2, 5); } break; case GameState.Options: if (B3.Clicked == true) { CurrentGameState = GameState.ClrsÉchiquier; VoilerBoutons(2, 5); AfficherBoutons(7, 11); } if (B4.Clicked == true) { CurrentGameState = GameState.TempsPartie; VoilerBoutons(2, 5); AfficherBoutons(11, 15); } if (B5.Clicked == true) { CurrentGameState = GameState.Musique; VoilerBoutons(2, 5); AfficherBoutons(15, 19); } if (GestionInput.EstNouvelleTouche(Keys.Escape)) { CurrentGameState = GameState.MenuPrincipal; VoilerBoutons(2, 5); AfficherBoutons(0, 2); } break; case GameState.ClrsÉchiquier: if (B8.Clicked || B9.Clicked || B10.Clicked == true || B11.Clicked == true) { CurrentGameState = GameState.Options; VoilerBoutons(7, 11); AfficherBoutons(2, 5); } break; case GameState.TempsPartie: if (B12.Clicked || B13.Clicked || B14.Clicked || B15.Clicked == true) { CurrentGameState = GameState.Options; VoilerBoutons(11, 15); AfficherBoutons(2, 5); } break; case GameState.Musique: if (B16.Clicked || B17.Clicked || B18.Clicked || B19.Clicked == true) { CurrentGameState = GameState.Options; VoilerBoutons(15, 19); AfficherBoutons(2, 5); } break; case GameState.EnPause: if (GestionInput.EstNouvelleTouche(Keys.Escape) || B6.Clicked == true) { CurrentGameState = GameState.EnJeu; VoilerBoutons(5, 7); Components.Remove(Anand); } if (B7.Clicked == true) { VoilerBoutons(5, 7); QuitterPartie(); } break; case GameState.EnJeu: if (PartiEnCours.PartieTerminée) { TempsÉcouléDepuisFinDePartie += tempsÉcoulé; if (!Components.Contains(Gagnant)) { switch (PartiEnCours.TourActuel.AutreCouleur) { case "White": Components.Add(Gagnant = new TexteAffichable(this, "Arial", VAINQUEUR_N, Color.LightGreen, 0, 3.0f, PROFONDEUR_DEFAUT - 0.5f)); break; case "Black": Components.Add(Gagnant = new TexteAffichable(this, "Arial", VAINQUEUR_B, Color.LightGreen, 0, 3.0f, PROFONDEUR_DEFAUT - 0.5f)); break; } } Afficheur3D afficheur3DTemporaire; Components.Add(afficheur3DTemporaire = new Afficheur3D(this)); if (TempsÉcouléDepuisFinDePartie > TEMPS_FIN_DE_PARTIE) { QuitterPartie(); Components.Remove(Gagnant); Components.Remove(afficheur3DTemporaire); TempsÉcouléDepuisFinDePartie = 0; } } else { if (GestionInput.EstNouvelleTouche(Keys.P)) { switch (Chanson.State) { case SoundState.Playing: Chanson.Pause(); break; case SoundState.Paused: Chanson.Resume(); break; } } if (GestionInput.EstNouvelleTouche(Keys.Escape)) { CurrentGameState = GameState.EnPause; Components.Add(Anand = new ZoneDéroulante(this, "Anand", new Rectangle(0, 0, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height), INTERVALLE_MAJ_STANDARD)); Components.Remove(B6); Components.Remove(B7); Components.Add(B6); Components.Add(B7); AfficherBoutons(5, 7); } if (PartiEnCours.TourActuel.Couleur == "White" && CaméraJeu.aFiniTourner()) { TempsRestantB = TempsRestantB - tempsÉcoulé; ChangerTemps("W"); string temps = ((int)(TempsRestantB / 60)).ToString() + ":" + ((int)(TempsRestantB % 60)).ToString(); TempsB.ModifierTexte(temps); } else { if (CaméraJeu.aFiniTourner()) { TempsRestantN = TempsRestantN - tempsÉcoulé; ChangerTemps("N"); string temps = ((int)(TempsRestantN / 60)).ToString() + ":" + ((int)(TempsRestantN % 60)).ToString(); TempsN.ModifierTexte(temps); } } } break; } TempsÉcouléDepuisMAJ = 0; } base.Update(gameTime); }