Beispiel #1
0
 /// <summary>
 /// Adds a pedestrian to the <see cref="Pedestrians"/> list.
 /// </summary>
 /// <param name="addPedestrian">The <see cref="Pedestrian"/> to be added.</param>
 public void AddPedestrians(Pedestrian addPedestrian)
 {
     if (!this.Pedestrians.Contains(addPedestrian))
     {
         this.Pedestrians.Add(addPedestrian);
     }
 }
Beispiel #2
0
 /// <summary>
 /// Removes a pedestrian from the <see cref="Pedestrians"/> list.
 /// </summary>
 /// <param name="removePedestrian">The <see cref="Pedestrian"/> to be removed.</param>
 public void RemovePedestrians(Pedestrian removePedestrian)
 {
     if (!this.Pedestrians.Contains(removePedestrian))
     {
         this.Pedestrians.Remove(removePedestrian);
     }
 }
        /// <summary>
        /// Generates <see cref="Pedestrian"/> for each <see cref="Zebra"/> in the <see cref="PedestrianIntersection"/>.
        /// </summary>
        public void GeneratePedestrians()
        {
            // LeftZebra pedestrians starting from up side
            var random = new Random();
            for (var i = 0; i <= random.Next(1, 3); i++)
            {
                var pedestrian = new Pedestrian(new Point(HitBox.X + i*5 + 25, HitBox.Y + 50), PedestrianMovement.Down);
                if (!this.LeftZebra.Pedestrians.Contains(pedestrian))
                    this.LeftZebra.Pedestrians.Add(pedestrian);
            }

            // RightZebra pedestrians starting from up side
            for (var i = 0; i <= random.Next(1, 3); i++)
            {
                var pedestrian = new Pedestrian(new Point(HitBox.X + i*5 + 180, HitBox.Y + 50), PedestrianMovement.Down);
                if (!this.RightZebra.Pedestrians.Contains(pedestrian))
                    this.RightZebra.Pedestrians.Add(pedestrian);
            }

            // LeftZebra pedestrians starting from down side
            for (var i = 0; i <= random.Next(1, 3); i++)
            {
                var pedestrian = new Pedestrian(new Point(HitBox.X + i*5 + 20, HitBox.Y + 165), PedestrianMovement.Up);
                if (!this.LeftZebra.Pedestrians.Contains(pedestrian))
                    this.LeftZebra.Pedestrians.Add(pedestrian);
            }

            // RightZebra pedestrians starting from down side
            for (var i = 0; i <= random.Next(1, 3); i++)
            {
                var pedestrian = new Pedestrian(new Point(HitBox.X + i*5 + 180, HitBox.Y + 160), PedestrianMovement.Up);
                if (!this.RightZebra.Pedestrians.Contains(pedestrian))
                    this.RightZebra.Pedestrians.Add(pedestrian);
            }
        }
        /// <summary>
        /// Generates <see cref="Pedestrian"/> for each <see cref="Zebra"/> in the <see cref="PedestrianIntersectionType2"/>.
        /// </summary>
        public void GeneratePedestrians()
        {
            // UpperZebra pedestrians starting from right side
            var random = new Random();
            for (var i = 0; i <= random.Next(1, 3); i++)
            {
                var pedestrian = new Pedestrian(new Point(HitBox.X + 50, HitBox.Y + i*5 + 25), PedestrianMovement.Left);
                if (!this.UpperZebra.Pedestrians.Contains(pedestrian))
                    this.UpperZebra.Pedestrians.Add(pedestrian);
            }

            // LowerZebra pedestrians starting from right side
            for (var i = 0; i <= random.Next(1, 3); i++)
            {
                var pedestrian = new Pedestrian(new Point(HitBox.X + 50, HitBox.Y + i*5 + 180), PedestrianMovement.Left);
                if (!this.LowerZebra.Pedestrians.Contains(pedestrian))
                    this.LowerZebra.Pedestrians.Add(pedestrian);
            }

            // UpperZebra pedestrians starting from left side
            for (var i = 0; i <= random.Next(1, 3); i++)
            {
                var pedestrian = new Pedestrian(new Point(HitBox.X + 165, HitBox.Y + i*5 + 20), PedestrianMovement.Right);
                if (!this.UpperZebra.Pedestrians.Contains(pedestrian))
                    this.UpperZebra.Pedestrians.Add(pedestrian);
            }

            // LowerZebra pedestrians starting from left side
            for (var i = 0; i <= random.Next(1, 3); i++)
            {
                var pedestrian = new Pedestrian(new Point(HitBox.X + 160, HitBox.Y + i*5 + 180),
                    PedestrianMovement.Right);
                if (!this.LowerZebra.Pedestrians.Contains(pedestrian))
                    this.LowerZebra.Pedestrians.Add(pedestrian);
            }
        }