public void OnMouseDown(object sender, MouseEventArgs e) { foreach (UsagerWidget roaduser in roadUsers) { VoitureWidget voitureCourante = roaduser as VoitureWidget; if (voitureCourante.Voiture.estClique(e.Location)) { voiture = voitureCourante.Voiture; return; } } // creation de la route si en mode edition if (ToolsBox.Visible) { Route w = Route.VersPositionCase(e.X, e.Y, ToolsBox.RouteSelectionnee); if (w != null) { Ways.Add(new RouteWidget(w)); } } }
/// <summary> /// Constructeur par défaut. /// </summary> public EnVoiturePanel() { this.Enabled = true; DoubleBuffered = true; this.roadUsers = new List <UsagerWidget>(); roadUsers.Add(new VoitureWidget(0, 0, 10, 20, 80)); roadUsers.Add(new VoitureWidget(150, 150, 10, 20, 80)); roadUsers.Add(new VoitureWidget(240, 240, 10, 20, 80)); voiture = (roadUsers[0] as VoitureWidget).Voiture; this.Ways = new List <RouteWidget>(); foreach (Route route in Route.Generer(6, 6)) { Ways.Add(new RouteWidget(route)); } this.Paint += new PaintEventHandler(EnVoiture_Paint); foreach (Route route in Route.Generer(8, 6)) { this.Ways.Add(new RouteWidget(route)); } }
/// <summary> /// permet de tester si la voiture se trouve sur la route /// </summary> /// <param name="route">contient la route</param> /// <param name="voiture">contient la voiture</param> /// <returns>retourne vrai si la voiture se trouve sur la route et false si elle ne l'est pas</returns> public bool DansLaRoute(Voiture voiture) { //si le bord gauche de la voiture dépasse le bord gauche de la route if (voiture.Gauche < this.BordGauche) { return(false); } //si le bord droit de la voiture dépasse le bord droit de la route if (voiture.Droite > this.BordDroite) { return(false); } //si le bord haut de la voiture dépasse le bord haut de la route if (voiture.Haut < this.BordHaut) { return(false); } //si le bord bas de la voiture dépasse le bord bas de la route if (voiture.Bas > this.BordBas) { return(false); } return(true); }
/// <summary> /// Constructeur permettant de définir la position et la taille d'une voiture en donnant directement les valeurs. /// </summary> /// <param name="x">Position x du côté gauche</param> /// <param name="y">Position y du haut</param> /// <param name="width">Largeur</param> /// <param name="height">Hauteur</param> public VoitureWidget(int x, int y, int width, int height, float vMax) { this.Voiture = new Voiture(x, y, width, height, vMax); }
/// <summary> /// Constructeur permettant de définir la position et la taille d'une voiture d'après un rectangle. /// </summary> /// <param name="rectangle">Rectangle sur lequel baser la géométrie de la voiture</param> public VoitureWidget(Rectangle rectangle) { this.Voiture = new Voiture(rectangle, 0.0F); }