Beispiel #1
0
 public void paint(Graphics e)
 {
     GrilleSimulation.paint(e);
     if (MaVoiture != null)
     {
         MaVoiture.paint(e);
     }
     foreach (Parcours parcours in ListeParcours)
     {
         parcours.paint(e);
     }
 }
Beispiel #2
0
        public void runParcours(int temps)
        {
            double speed = MaVoiture.update(temps, GrilleSimulation);

            deplaceVoiture(MaVoiture, speed);
            foreach (Parcours parcours in ListeParcours)
            {
                //mouvement des voitures
                string  ParcoursDirection = parcours.getDirection();
                Voiture voitureTerminee   = null;
                foreach (Voiture voiture in parcours.ListeVoitures)
                {
                    deplaceVoiture(voiture, (double)parcours.Vitesse);
                    //si atteint la fin, disparait
                    if ((Math.Abs(voiture.CoordonneeX - parcours.XDebut) + Math.Abs(voiture.CoordonneeX - parcours.XFin)) > Math.Abs(parcours.XFin - parcours.XDebut))
                    {
                        voitureTerminee = voiture;
                    }
                    else if ((Math.Abs(voiture.CoordonneeY - parcours.YDebut) + Math.Abs(voiture.CoordonneeY - parcours.YFin)) > Math.Abs(parcours.YFin - parcours.YDebut))
                    {
                        voitureTerminee = voiture;
                    }
                }

                if (voitureTerminee != null)
                {
                    parcours.ListeVoitures.Remove(voitureTerminee);
                }

                //Ajout des voitures
                int tempsAjuste = temps - parcours.Phase;
                if (tempsAjuste >= 0)
                {
                    if (tempsAjuste % (parcours.Periode) == 0)
                    {
                        parcours.ListeVoitures.Add(new Voiture(parcours.XDebut, parcours.YDebut, GrilleSimulation.TailleCellules, ParcoursDirection));
                    }
                }
            }
        }