public override void Draw(GameTime gameTime) { if (CourseActive) { if (Afficher) { GestionSprites.Draw(Accéléromètre, PositionAccéléromètre, null, Color.White, 0, new Vector2(167, 27), 0.40f, SpriteEffects.None, 0); //GestionSprites.DrawString(ArialFont, Vitesse, PositionVitesse, new Color(17, 83, 133), 0f, new Vector2(DimensionVitesse.X / 2, DimensionVitesse.Y / 2), 0.375f, SpriteEffects.None, 0); //GestionSprites.Draw(Aiguille, new Vector2(103, Game.Window.ClientBounds.Height - 70), null, Color.White, RotationAiguille, new Vector2(167, 27), 0.35f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, Vitesse, PositionVitesse + new Vector2(1, 1), Color.Black, 0f, new Vector2(DimensionVitesse.X / 2, DimensionVitesse.Y / 2), 0.70f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, Vitesse, PositionVitesse, Color.White, 0f, new Vector2(DimensionVitesse.X / 2, DimensionVitesse.Y / 2), 0.70f, SpriteEffects.None, 0); GestionSprites.Draw(Aiguille, new Vector2(90, Game.Window.ClientBounds.Height - 24), null, Color.White, RotationAiguille, new Vector2(267, 27), 0.35f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, ("POSITION"), PositionDePosition - new Vector2(12, 25) + new Vector2(1, 1), Color.Black, 0f, new Vector2(DimensionPosition.X / 2, DimensionPosition.Y / 2), 0.35f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, ("POSITION"), PositionDePosition - new Vector2(12, 25), Color.White, 0f, new Vector2(DimensionPosition.X / 2, DimensionPosition.Y / 2), 0.35f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, (PositionUtilisateur.ToString() + "/" + NbVoiture.ToString()), PositionDePosition + new Vector2(1, 1), Color.Black, 0f, new Vector2(DimensionPosition.X / 2, DimensionPosition.Y / 2), 0.625f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, (PositionUtilisateur.ToString() + "/" + NbVoiture.ToString()), PositionDePosition, Color.White, 0f, new Vector2(DimensionPosition.X / 2, DimensionPosition.Y / 2), 0.625f, SpriteEffects.None, 0); if (AfficherTemps) { GestionSprites.DrawString(ArialFont, (TableauTemps[2].ToString("00") + ":" + TableauTemps[1].ToString("00") + "." + TableauTemps[0].ToString("00").ToString()), PositionTemps + new Vector2(1, 1), Color.Black, 0f, new Vector2(DimensionTemps.X / 2, DimensionTemps.Y / 2), 0.375f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, (TableauTemps[2].ToString("00") + ":" + TableauTemps[1].ToString("00") + "." + TableauTemps[0].ToString("00").ToString()), PositionTemps, Color.White, 0f, new Vector2(DimensionTemps.X / 2, DimensionTemps.Y / 2), 0.375f, SpriteEffects.None, 0); } GestionSprites.DrawString(ArialFont, ("TOUR"), PositionTour - new Vector2(5, 25) + new Vector2(1, 1), Color.Black, 0f, new Vector2(DimensionTour.X / 2, DimensionTour.Y / 2), new Vector2(0.40f, 0.35f), SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, ("TOUR"), PositionTour - new Vector2(5, 25), Color.White, 0f, new Vector2(DimensionTour.X / 2, DimensionTour.Y / 2), new Vector2(0.40f, 0.35f), SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, (ToursFait + "/" + NbTours), PositionTour + new Vector2(1, 1), Color.Black, 0f, new Vector2(DimensionTour.X / 2, DimensionTour.Y / 2), 0.625f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, (ToursFait + "/" + NbTours), PositionTour, Color.White, 0f, new Vector2(DimensionTour.X / 2, DimensionTour.Y / 2), 0.625f, SpriteEffects.None, 0); GestionSprites.Draw(TableauNotification[TypeNotification], PositionNotif, null, new Color(255, 255, 255, TransparenceNotif), 0, DimensionNotif, ÉchelleNotif, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, GetMessage(0), PositionMessageNotif, new Color(0, 0, 0, TransparenceNotif), 0, DimensionNotif, ÉchelleNotif, SpriteEffects.None, 0); //Afficher notification si un joueur se déconnecte lors d'une partie en lan if (ModeDeJeu == 1 && DépartCourse && NbJoueursConnectés == 1) // true est si la course est commencée { //besoin d'optimisation GestionSprites.Draw(TableauNotification[3], new Vector2(Game.Window.ClientBounds.Width / 2f - (TableauNotification[3].Width * 0.4f / 2f), 25), null, Color.White, 0, DimensionNotif, 0.4f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, GetMessage(4), new Vector2(Game.Window.ClientBounds.Width / 2f - (TableauNotification[3].Width * 0.4f / 2f), 35) + new Vector2(150 * 0.4f, DimensionNotif.Y / 2f), Color.Black, 0, DimensionNotif, 0.4f, SpriteEffects.None, 0); } GestionSprites.DrawString(ArialFont, ÉtatDépart, PositionDépart + new Vector2(1, 1), Color.Black, 0f, new Vector2(DimensionDépart.X / 2, DimensionDépart.Y / 2), 1f, SpriteEffects.None, 0); GestionSprites.DrawString(ArialFont, ÉtatDépart, PositionDépart, Color.White, 0f, new Vector2(DimensionDépart.X / 2, DimensionDépart.Y / 2), 1f, SpriteEffects.None, 0); //if (AfficherMessageChangementTour) //{ // if (NbTours - ToursFait != 0) // { // GestionSprites.DrawString(ArialFont, GetMessage(0), PositionDépart + new Vector2(0, -50) + new Vector2(1, 1), Color.Black, 0f, ArialFont.MeasureString(GetMessage(0)) * new Vector2(0.5f, 0.5f), 1f, SpriteEffects.None, 0); // GestionSprites.DrawString(ArialFont, GetMessage(0), PositionDépart + new Vector2(0, -50), Color.White, 0f, ArialFont.MeasureString(GetMessage(0)) * new Vector2(0.5f, 0.5f), 1f, SpriteEffects.None, 0); // GestionSprites.DrawString(ArialFont, GetMessage(1), PositionDépart + new Vector2(0, 10) + new Vector2(1, 1), Color.Black, 0f, ArialFont.MeasureString(GetMessage(1)) * new Vector2(0.5f, 0.5f), 0.5f, SpriteEffects.None, 0); // GestionSprites.DrawString(ArialFont, GetMessage(1), PositionDépart + new Vector2(0, 10), Color.White, 0f, ArialFont.MeasureString(GetMessage(1)) * new Vector2(0.5f, 0.5f), 0.5f, SpriteEffects.None, 0); // } // else // { // GestionSprites.DrawString(ArialFont, GetMessage(2), PositionDépart + new Vector2(0, -50) + new Vector2(1, 1), Color.Black, 0f, ArialFont.MeasureString(GetMessage(2)) * new Vector2(0.5f, 0.5f), 1f, SpriteEffects.None, 0); // GestionSprites.DrawString(ArialFont, GetMessage(2), PositionDépart + new Vector2(0, -50), Color.White, 0f, ArialFont.MeasureString(GetMessage(2)) * new Vector2(0.5f, 0.5f), 1f, SpriteEffects.None, 0); // GestionSprites.DrawString(ArialFont, GetMessage(3), PositionDépart + new Vector2(0, 10) + new Vector2(1, 1), Color.Black, 0f, ArialFont.MeasureString(GetMessage(3)) * new Vector2(0.5f, 0.5f), 0.5f, SpriteEffects.None, 0); // GestionSprites.DrawString(ArialFont, GetMessage(3), PositionDépart + new Vector2(0, 10), Color.White, 0f, ArialFont.MeasureString(GetMessage(3)) * new Vector2(0.5f, 0.5f), 0.5f, SpriteEffects.None, 0); // } //} } } base.Draw(gameTime); }
public override void Update(GameTime gameTime) { //Game.Window.Title = Afficher.ToString(); if (CourseActive) { if (Afficher) { TempsÉcouléDepuisMAJ += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TempsÉcouléDepuisMAJ >= IntervalleMAJ) { if (TempsDépart / 60f <= 4) { TempsDépart++; } //GestionDépart(); if (ToursFait != NbTours && TempsDépart / 60f > 2) { Temps++; } AfficherNotif(VérificationChangementTour()); NotificationTour(VérificationChangementTour()); PositionAccéléromètre = new Vector2(103, Game.Window.ClientBounds.Height - 130); PositionVitesse = new Vector2(54, Game.Window.ClientBounds.Height - 42); PositionDePosition = new Vector2(Percent(5, true), Percent(10, false)); PositionTemps = new Vector2(Percent(5, true), Percent(15, false)); PositionTour = new Vector2(Percent(95, true), Percent(10, false)); PositionDépart = new Vector2(Percent(50, true), Percent(50, false)); DimensionDépart = ArialFont.MeasureString(ÉtatDépart); DimensionVitesse = ArialFont.MeasureString(Vitesse); DimensionPosition = ArialFont.MeasureString(PositionUtilisateur.ToString() + "/" + NbVoiture.ToString()); DimensionTemps = ArialFont.MeasureString(TableauTemps[2].ToString("00") + ":" + TableauTemps[1].ToString("00") + "." + TableauTemps[0].ToString("00").ToString()); DimensionTour = ArialFont.MeasureString(PourcentageCourse.ToString("0/0")); DimensionNotif = new Vector2(300 * ÉchelleNotif, 50 * ÉchelleNotif); PositionNotif = new Vector2(Game.Window.ClientBounds.Width / 2f - DimensionNotif.X / 2f, PositionNotif.Y); DimensionMessageNotif = ArialFont.MeasureString(GetMessage(0)); PositionMessageNotif = PositionNotif + new Vector2(150 * ÉchelleNotif, DimensionNotif.Y / 2f); RotationAiguille = ((Math.Abs(Convert.ToInt32(Vitesse) / Voiture.VITESSE_MAX)) * (float)2.2f) + 0.85f;//Vitesse max! if (DébuterTemps) { GestionTemps(); } TempsMilliSeconde = TableauTemps[0] + TableauTemps[1] * 60 + TableauTemps[2] * 3600; TempsÉcouléDepuisMAJ = 0; } } base.Update(gameTime); } }