Пример #1
0
 public void AddList(Pedestrian t)
 {
     if (!pedestrians.Contains(t))
     {
         pedestrians.Add(t);
     }
 }
Пример #2
0
    public IEnumerator PedestrianFullWalkTest()
    {
        DisableLoops();
        DisableVehicles();
        foreach (Pedestrian p in GameObject.FindObjectsOfType <Pedestrian>())
        {
            GameObject.Destroy(p);
        }
        foreach (PedestrianCrossing pedestrianCrossing in PedestrianManager.GetInstance().GetPedestrianCrossings())
        {
            pedestrianCrossing.SetAllowCrossing(true);
        }
        PedestrianFactory pedestrianFactory = GameObject.FindObjectOfType <PedestrianFactory>();

        pedestrianFactory.SpawnPedestrian();
        yield return(new WaitForSeconds(1));

        Pedestrian pedestrian = GameObject.FindObjectOfType <Pedestrian>();

        pedestrian.GetComponent <NavMeshAgent>().speed = 5;
        pedestrian.SetAllowCrossing(true);
        while (true)
        {
            yield return(new WaitForSeconds(1));

            if (pedestrian == null)
            {
                break;
            }
            else
            {
                pedestrian.GetComponent <NavMeshAgent>().speed = 5;
            }
        }
    }
Пример #3
0
 public void RemoveList(Pedestrian t)
 {
     if (pedestrians.Contains(t))
     {
         pedestrians.Remove(t);
     }
 }
Пример #4
0
    private void spawnPedestrians()
    {
        float   place   = Random.value * rdHeight - rdHeight / 2;
        Vector3 spawnPt = new Vector3(spawnPtPad + (rdWidth / 2), place, 0);

        if (Pedestrian.spawnClock > Pedestrian.spawnNext)
        {
            Pedestrian.spawnClock -= Pedestrian.spawnNext;
            GameObject go = new GameObject();
            go.transform.parent   = enemyFolder.transform;
            go.transform.position = spawnPt;
            Pedestrian pedestrian = go.AddComponent <Pedestrian>();
            if (dropped)
            {
                pedestrian.init(this, true);
            }
            else
            {
                pedestrian.init(this, false);
            }
            Pedestrian.spawnNext = (Pedestrian.minTimeBase + Pedestrian.minTimeAggro * aggro) +
                                   (Pedestrian.spreadTimeBase + Pedestrian.spreadTimeAggro * aggro) *
                                   Random.value;
        }
        Pedestrian.spawnClock += Time.deltaTime;
    }
Пример #5
0
        private static void StartCrossWalk(PictureBox car_pictureBox, PictureBox frontPedestrian_pb, PictureBox trafficLight_pb, PictureBox ambulance_pb, Panel panel)
        {
            panel.Invoke(new MethodInvoker(() =>
                                           panel.Visible = true));
            //panel.Visible = true;
            TrafficLight trafficLight = new TrafficLight();
            Pedestrian   pedestrian   = new Pedestrian();
            Car          car          = new Car();
            //переключение светофора
            Thread SwitchTrafficThread = new Thread(new ParameterizedThreadStart(trafficLight.CheckTrafficLight));

            trafficLight_pb.Invoke(new MethodInvoker(() =>
                                                     trafficLight_pb.Visible = true));
            //trafficLight_pb.Visible = true;
            SwitchTrafficThread.Start(trafficLight_pb);
            ////движение машины
            Thread       moveCarThread = new Thread(new ParameterizedThreadStart(Utils.MoveObjectCar));
            ClassForMove myObject1Car  = new ClassForMove(car, car_pictureBox, trafficLight, frontPedestrian_pb, pedestrian);

            moveCarThread.Start(myObject1Car);
            ////движение пешехода переднего
            Thread       frontPedestrianThread = new Thread(new ParameterizedThreadStart(Utils.MoveObjectFrontPedestrian));
            ClassForMove myObject2Pedestrian   = new ClassForMove(pedestrian, frontPedestrian_pb, trafficLight, car_pictureBox, car);

            frontPedestrianThread.Start(myObject2Pedestrian);
            //аварийный случай
            Thread       ambulanceThread    = new Thread(new ParameterizedThreadStart(Utils.CheckEmergencyCase));
            ClassForMove myObject3Ambulance = new ClassForMove(ambulance_pb, pedestrian, car);

            ambulanceThread.Start(myObject3Ambulance);
        }
Пример #6
0
    public void ActivateShield()
    {
        if (shields > 0)
        {
            shields--;
            abilities--;

            GetComponent <AudioSource>().clip = immuneSound;
            GetComponent <AudioSource>().Play();

            if (maxSpeed < baseMaxSpeed)
            {
                maxSpeed = baseMaxSpeed;
            }
            Camera.main.GetComponentInChildren <CameraOverlay>().ShowOverlay();

            //Check all pedestrians for negative ones, and destroy them.
            GameObject[] allPedestrians = GameObject.FindGameObjectsWithTag("Pedestrian");
            foreach (GameObject pedestrianObject in allPedestrians)
            {
                Pedestrian pedestrian = pedestrianObject.GetComponent <Pedestrian>();
                if (pedestrian.GetRole() == Role.Stink || pedestrian.GetRole() == Role.Chunky || pedestrian.GetRole() == Role.Dazer)
                {
                    Destroy(pedestrian.gameObject);
                }
            }

            effectsAnimator.SetTrigger("Norm");
        }
    }
Пример #7
0
 public Customer(Interactable _target, Pedestrian _pedestrian, NavMeshAgent _agent, Animator _anim)
 {
     target     = _target;
     pedestrian = _pedestrian;
     agent      = _agent;
     anim       = _anim;
 }
Пример #8
0
    public IEnumerator PedestrianAllowCrossingMaskTest()
    {
        DisableLoops();
        DisableVehicles();
        int roadAreaMask                    = 1 << NavMesh.GetAreaFromName(PedestrianManager.ROAD_AREA);
        int walkableAreaMask                = 1 << NavMesh.GetAreaFromName(PedestrianManager.WALKABLE_AREA);
        int pedestrianCrossingAreaMask      = 1 << NavMesh.GetAreaFromName(PedestrianManager.PEDESTRIAN_CROSSING_AREA);
        PedestrianFactory pedestrianFactory = GameObject.FindObjectOfType <PedestrianFactory>();

        pedestrianFactory.SpawnPedestrian();
        yield return(new WaitForSeconds(1));

        Pedestrian pedestrian = GameObject.FindObjectOfType <Pedestrian>();

        pedestrian.SetAllowCrossing(true);
        NavMeshAgent navMeshAgent = pedestrian.GetComponent <NavMeshAgent>();

        navMeshAgent.speed = 0;
        yield return(new WaitForSeconds(1));

        Assert.IsTrue(navMeshAgent.areaMask == (walkableAreaMask | pedestrianCrossingAreaMask) || navMeshAgent.areaMask == (roadAreaMask | walkableAreaMask | pedestrianCrossingAreaMask));
        pedestrian.SetAllowCrossing(false);
        yield return(new WaitForSeconds(1));

        Assert.IsTrue(navMeshAgent.areaMask == (walkableAreaMask) || navMeshAgent.areaMask == (roadAreaMask | walkableAreaMask));
    }
Пример #9
0
 public ClassForMove(Car car, PictureBox pictureBox, TrafficLight trafficLight, PictureBox emergency, Pedestrian pedestrian)
 {
     Car               = car;
     PictureBox        = pictureBox;
     TrafficLight      = trafficLight;
     EmergencyCauseBox = emergency;
     Pedestrian        = pedestrian;
 }
Пример #10
0
 public ClassForMove(Pedestrian pedestrian, PictureBox pictureBox, TrafficLight trafficLight, PictureBox emergency, Car car)
 {
     Pedestrian        = pedestrian;
     PictureBox        = pictureBox;
     TrafficLight      = trafficLight;
     EmergencyCauseBox = emergency;
     Car = car;
 }
Пример #11
0
 public ClassForMove(PictureBox pictureBox, Pedestrian pedestrian, Car car, int number, int nearestNumber)
 {
     PictureBox    = pictureBox;
     Pedestrian    = pedestrian;
     Car           = car;
     Number        = number;
     NearestNumber = nearestNumber;
 }
Пример #12
0
        public MifareCard(Pedestrian pedestrian)
        {
            establishContext();
            ConsoleLogListReader();

            this.pedestrian = pedestrian;
            this.acr123u    = new Acr123U();
        }
Пример #13
0
    public void CreateSpecificRole(Role newRole)
    {
        if (transform.position.y > 0)
        {
            // Determine start and end positions for pedestrian
            float startY = 2.2f;
            float endY   = -3f;

            // Create pedestrian
            Vector3 streetcarPosition = GameObject.FindGameObjectWithTag("Streetcar").transform.position;
            Vector3 spawnPosition     = new Vector3(streetcarPosition.x + 3, startY, 0);

            GameObject newPedestrian = Instantiate(pedestrianPrefab, spawnPosition, Quaternion.identity) as GameObject;
            newPedestrian.transform.SetParent(pedestrianContainer);

            // Set Role
            Pedestrian pedestrianScript = newPedestrian.GetComponent <Pedestrian> ();
            pedestrianScript.SetRole(newRole);
            pedestrianScript.SetMoveSpeed(1f);
            pedestrianScript.SetMoveDelayTime(1f);

            // Set Sprite
            switch (newRole)
            {
            case Role.Coin:
                newPedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = pedestrianSprites [0];
                break;

            case Role.Stink:
                newPedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = pedestrianSprites [Random.Range(0, pedestrianSprites.Length)];
                break;

            case Role.Chunky:
                newPedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = chunkySprites [Random.Range(0, chunkySprites.Length)];
                break;

            case Role.Inspector:
                newPedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = inspectorSprites [Random.Range(0, inspectorSprites.Length)];
                break;

            case Role.Dazer:
                newPedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = dazerSprites [Random.Range(0, dazerSprites.Length)];
                break;

            case Role.Officer:
                newPedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = officerSprites [Random.Range(0, officerSprites.Length)];
                break;

            case Role.Raver:
                newPedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = pedestrianSprites [Random.Range(0, pedestrianSprites.Length)];
                break;
            }

            // Set destination
            Vector3 newDestination = new Vector3(streetcarPosition.x + 3, endY, 0);
            pedestrianScript.SetDestination(newDestination);
        }
    }
        public override int GetHashCode()
        {
            int hash = 1;

            if (unknown_ != null)
            {
                hash ^= Unknown.GetHashCode();
            }
            if (unknownMovable_ != null)
            {
                hash ^= UnknownMovable.GetHashCode();
            }
            if (unknownUnmovable_ != null)
            {
                hash ^= UnknownUnmovable.GetHashCode();
            }
            if (car_ != null)
            {
                hash ^= Car.GetHashCode();
            }
            if (van_ != null)
            {
                hash ^= Van.GetHashCode();
            }
            if (truck_ != null)
            {
                hash ^= Truck.GetHashCode();
            }
            if (bus_ != null)
            {
                hash ^= Bus.GetHashCode();
            }
            if (cyclist_ != null)
            {
                hash ^= Cyclist.GetHashCode();
            }
            if (motorcyclist_ != null)
            {
                hash ^= Motorcyclist.GetHashCode();
            }
            if (tricyclist_ != null)
            {
                hash ^= Tricyclist.GetHashCode();
            }
            if (pedestrian_ != null)
            {
                hash ^= Pedestrian.GetHashCode();
            }
            if (trafficcone_ != null)
            {
                hash ^= Trafficcone.GetHashCode();
            }
            if (MaxDimChangeRatio != 0F)
            {
                hash ^= MaxDimChangeRatio.GetHashCode();
            }
            return(hash);
        }
Пример #15
0
    void generatePedestrain()
    {
        for (int i = 0; i < numberOfPedestrians; i++)
        {
            if (pedestrians[i] == null)
            {
                Pedestrian tempPed;
                GameObject tempPedObject;
                int        pos = Random.Range(0, 4);
                Vector3    tempGoal;
                switch (pos)
                {
                case 0:
                    tempPed      = new Pedestrian(7, 52);
                    tempPed.lane = 1;
                    tempGoal     = new Vector3(7f, 1f, 5f);
                    break;

                case 1:
                    tempPed      = new Pedestrian(10, 52);
                    tempPed.lane = 2;
                    tempGoal     = new Vector3(10f, 1f, 5f);
                    break;

                case 2:
                    tempPed      = new Pedestrian(13, 52);
                    tempPed.lane = 3;
                    tempGoal     = new Vector3(13f, 1f, 5f);
                    break;

                case 3:
                    tempPed      = new Pedestrian(16, 52);
                    tempPed.lane = 4;
                    tempGoal     = new Vector3(16f, 1f, 5f);
                    break;

                default:
                    tempPed  = null;
                    tempGoal = new Vector3(0f, 0f, 0f);
                    break;
                }
                List <Move> pattern = generatePattern(0, 47, 0, 2);
                tempPedObject   = Instantiate(pedestrian, tempPed.position, Quaternion.identity);
                tempPed.goal    = tempGoal;
                tempPed.pattern = pattern;
                foreach (var j in pattern)
                {
                    Debug.Log(j.pattern);
                }
                tempPed.speed                  = speed;
                pedestrians [i]                = tempPed;
                pedestrianObjectHolder [i]     = tempPedObject;
                tempPedObject.tag              = "wall";
                tempPedObject.transform.parent = pedestrianHolder.transform;
                //Pedestrain tempPed = new Pedestrain ();
            }
        }
    }
Пример #16
0
    IEnumerator RespawnNPCTimer(Pedestrian _pedestrian)
    {
        Debug.Log("Wait");
        yield return(new WaitForSeconds(5));

        Debug.Log("Done with wait");
        _pedestrian.transform.position = _pedestrian.GetRandomExit().transform.position;
        _pedestrian.gameObject.SetActive(true);
    }
Пример #17
0
 public ClassForMove(Pedestrian pedestrian, PictureBox pictureBox, TrafficLight trafficLight, PictureBox emergency, Car car, int number, int nearestNumber)
 {
     Pedestrian        = pedestrian;
     PictureBox        = pictureBox;
     TrafficLight      = trafficLight;
     EmergencyCauseBox = emergency;
     Car           = car;
     Number        = number;
     NearestNumber = nearestNumber;
 }
Пример #18
0
    private void OnTriggerEnter(Collider collider)
    {
        Pedestrian pedestrian = collider.gameObject.GetComponent <Pedestrian>();

        if (pedestrian != null)
        {
            pedestriansCurrentlyInCrossingArea.Add(pedestrian);
            pedestrian.SetAllowCrossing(allowCrossing);
        }
    }
Пример #19
0
    IEnumerator stop(Pedestrian p, Move j)
    {
        p.wait = true;
        int waitTime = Random.Range(1, 4);

        yield return(new WaitForSeconds(waitTime));

        p.wait     = false;
        j.finished = true;
    }
Пример #20
0
    void Start()
    {
        Tick.Setup(Time.fixedDeltaTime);

        a = Create("A", aColor, aRadius, aPosition.ToCell(), aVelocity.ToCell());
        b = Create("B", bColor, bRadius, bPosition.ToCell(), bVelocity.ToCell());

        grid = new Grid(10, 1);
        grid.Add(a.shape);
        grid.Add(b.shape);
    }
Пример #21
0
 public void StopWaiting(Pedestrian p)
 {
     if(obstaclePedestrians.Contains(p))
     {
         obstaclePedestrians.Remove(p);
         if(obstaclePedestrians.Count == 0)
         {
             waitingForPedestrian = false;
         }
     }
 }
Пример #22
0
        /// <summary>
        /// Add a new pedestrian to the simulation.
        /// </summary>
        /// <param name="ped">The pedestrian to add.</param>
        public void AddPed(Pedestrian ped)
        {
            RigidBody body = ped.Body;

            world.AddBody(body);

            PedestrianController controller = new PedestrianController(world, body);

            world.AddConstraint(controller);
            ped.Controller = controller;
        }
Пример #23
0
        static void Main(string[] args)
        {
            //User client = new User();

            Plane      plane      = new Plane();
            Car        car        = new Car();
            Pedestrian pedestrian = new Pedestrian();

            plane.Move(1500);
            car.Move(1500);
        }
Пример #24
0
    void Start()
    {
        Tick.Setup(Time.fixedDeltaTime);

        grid = new Grid(20, 0.75);

        follower = new Node("Follower").AddBehavior(new Pedestrian());
        follower.shape.radius = radius;
        grid.Add(follower.shape);
        follower.shape.CreateView();
    }
Пример #25
0
    private void OnTriggerExit(Collider collider)
    {
        Pedestrian pedestrian = collider.gameObject.GetComponent <Pedestrian>();

        if (pedestrian != null)
        {
            pedestriansCurrentlyInCrossingArea.Remove(pedestrian);
            if (FindObjectsOfType <PedestrianCrossing>().Count(p => p.pedestriansCurrentlyInCrossingArea.Contains(pedestrian)) == 0)
            {
                pedestrian.SetAllowCrossing(true);
            }
        }
    }
Пример #26
0
        private void ApiSignIn(string username, string password)
        {
            var           APIUrl        = Properties.Resources.LoginAPIURL;
            SignInRequest signInRequest = new SignInRequest(username, password);
            string        sent_param    = JsonConvert.SerializeObject(signInRequest);

            DataResponseArray response = (DataResponseArray)restApi.post(this.ip_address_server, APIUrl, false, sent_param);

            if (response != null)
            {
                switch (response.Status)
                {
                case 201:
                    try
                    {
                        switch (Properties.Settings.Default.GateType.ToLower())
                        {
                        case "in":
                            this.passKadeIn = new PassKadeIn(this);
                            this.passKadeIn.Show();
                            break;

                        case "out":
                            this.cashier = new Cashier(this);
                            this.cashier.Show();
                            break;

                        default:
                            this.pedestrian = new Pedestrian(this);
                            this.pedestrian.Show();
                            break;
                        }
                        Hide();
                    }
                    catch (Exception)
                    {
                        notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", Constant.ERROR_MESSAGE_FAIL_TO_CONNECT_WEBCAM, ToolTipIcon.Error);
                        return;
                    }
                    break;

                default:
                    notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", response.Message, ToolTipIcon.Error);
                    break;
                }
            }
            else
            {
                notifyIcon.ShowBalloonTip(Constant.NOTIFICATION_TRAY_TIMEOUT, "Error", Constant.ERROR_MESSAGE_FAIL_TO_CONNECT_SERVER, ToolTipIcon.Error);
            }
        }
Пример #27
0
    void GetNewRole(GameObject pedestrian)
    {
        float      randomValue      = Random.Range(0, raverPercentage + officerPercentage + dazerPercentage + inspectorPercentage + chunkyPercentage + stinkPercentage + coinPercentage);
        Pedestrian pedestrianScript = pedestrian.GetComponent <Pedestrian>();

        if (randomValue < coinPercentage)
        {
            pedestrianScript.SetRole(Role.Coin);
            pedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = pedestrianSprites [Random.Range(0, pedestrianSprites.Length)];
        }
        else if (randomValue < stinkPercentage + coinPercentage)
        {
            pedestrianScript.SetRole(Role.Stink);
            pedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = pedestrianSprites [Random.Range(0, pedestrianSprites.Length)];
        }
        else if (randomValue < chunkyPercentage + stinkPercentage + coinPercentage)
        {
            pedestrianScript.SetRole(Role.Chunky);
            pedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = chunkySprites [Random.Range(0, chunkySprites.Length)];
        }
        else if (randomValue < inspectorPercentage + chunkyPercentage + stinkPercentage + coinPercentage)
        {
            pedestrianScript.SetRole(Role.Inspector);
            pedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = inspectorSprites [Random.Range(0, inspectorSprites.Length)];
        }
        else if (randomValue < dazerPercentage + inspectorPercentage + chunkyPercentage + stinkPercentage + coinPercentage)
        {
            pedestrianScript.SetRole(Role.Dazer);
            pedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = dazerSprites [Random.Range(0, dazerSprites.Length)];
        }
        else if (randomValue < officerPercentage + dazerPercentage + inspectorPercentage + chunkyPercentage + stinkPercentage + coinPercentage)
        {
            pedestrianScript.SetRole(Role.Officer);
            pedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = officerSprites [Random.Range(0, officerSprites.Length)];
        }
        else if (randomValue < raverPercentage + officerPercentage + dazerPercentage + inspectorPercentage + chunkyPercentage + stinkPercentage + coinPercentage)
        {
            pedestrianScript.SetRole(Role.Raver);
        }
        else
        {
            pedestrianScript.SetRole(Role.Norm);
            pedestrian.GetComponentInChildren <SpriteRenderer> ().sprite = pedestrianSprites [Random.Range(0, pedestrianSprites.Length)];
        }

        if (pedestrianScript.GetRole() != Role.Norm)
        {
            pedestrianScript.SetMoveSpeed(2);
        }
    }
Пример #28
0
 // Update is called once per frame
 void Update()
 {
     try
     {
         if (greenLight && Bike != null)
         {
             Bike.StartEngine();
             Bike = null;
         }
     }
     catch
     {
     }
     try
     {
         if (greenLight && Car != null)
         {
             Car.StartEngine();
             Car2.StartEngine();
             Car2 = null;
             Car  = null;
         }
     }
     catch
     {
     }
     try
     {
         if (greenLight && Pedestrian != null)
         {
             Pedestrian.StartEngine();
             Pedestrian = null;
         }
     }
     catch
     {
     }
     try
     {
         if (greenLight && Boat != null)
         {
             Boat.StartEngine();
             Boat = null;
         }
     }
     catch
     {
     }
 }
    // Smoke Human Interaction
    void SmokeToHuman()
    {
        Vector3 position = this.gameObject.transform.position;
        int     X        = Mathf.RoundToInt(position.x) + (domainWidth / 2);
        int     Y        = Mathf.RoundToInt(position.z) + (domainLength / 2);
        int     T        = SmokeToHumanTime;

        if (current_time >= SmokeToHumanTime + 1)
        {
            SmokeToHumanTime += 1;
        }
        int index = ((domainWidth + 1) * (domainLength + 1)) * T +
                    (domainWidth + 1) * Y + X;

        if (T <= SimTime)
        {
            float Density = EffectiveTimeDensity[index];
            // Then use this density to do sth
            float damage = (Density / MaxDensity) * 10; // Let's set damage in this way for now
            // if it is a player:
            // 1. reduce its health
            // 2. change the interface accordingly
            if (this.tag == "Player")
            {
                DensityText.text = Density.ToString();
                Player PlayerInfo = this.GetComponent <Player>();
                PlayerInfo.Health -= damage;

                // if dead, go to evaluation scene;
                if (PlayerInfo.Health <= 0)
                {
                    PlayerDeath();
                }
                HealthText.text = PlayerInfo.Health.ToString();
                HealthBar.transform.localScale = new Vector3(PlayerInfo.Health / 100, 1, 1);
            }
            else if (this.tag == "Pedestrian")
            {
                Pedestrian PedInfo = this.GetComponent <Pedestrian>();
                PedInfo.Health -= damage;

                // if dead, destroy the pedestrian and maybe do something else
                if (PedInfo.Health <= 0)
                {
                    PedestrianDeath();
                }
            }
        }
    }
Пример #30
0
    public static void    ChangePedestrianModel(Pedestrian ped, int newModelId)
    {
        // model id range: 9 - 288

        if (-1 == newModelId)
        {
            newModelId = Random.Range(9, 289);
        }

        if (newModelId < 9 || newModelId > 288)
        {
            return;
        }

        ped.Load(newModelId);
    }
Пример #31
0
        public GTA2Game(string mapName, string styleName)
        {
            map = new Map.Map(mapName, styleName);
            map.CalcCoord();

            _physics = new WorldSimulation(map);

            sprites = new Sprites();
            GameObject.spriteAtlas = sprites;
            pedList = new List <Pedestrian>();
            Pedestrian ped = new Pedestrian(new Vector3(65, 178, 5));

            pedList.Add(ped);
            _physics.AddPed(ped);

            debugDraw = false;
        }
Пример #32
0
 public void WaitForPedestrian(Pedestrian p)
 {
     obstaclePedestrians.Add(p);
     waitingForPedestrian = true;
 }
Пример #33
0
        private void ReadPedestrianSection()
        {
            Peds = new List<Pedestrian>();

            ReadLine(); //# of pedsubs
            int nbrPeds = ReadLineAsInt();

            for (int i = 0; i < nbrPeds; i++)
            {
                Pedestrian ped = new Pedestrian();
                ped.RefNumber = ReadLineAsInt();

                int nbrInstructions = ReadLineAsInt();
                ped.InitialInstruction = ReadLineAsInt() -1;  //1-based
                for (int j = 0; j < nbrInstructions; j++)
                {
                    string type = ReadLine();
                    if (type == "point")
                    {
                        PedestrianInstruction instruction = new PedestrianInstruction();
                        instruction.Position = ReadLineAsVector3();
                        if (instruction.Position.Y > 500)
                        {
                            instruction.Position.Y -= PEDESTRIAN_AUTO_Y_FLAG;
                            instruction.AutoY = true;
                        }
                        ped.Instructions.Add(instruction);
                    }
                    else if (type == "reverse")
                    {
                        ped.Instructions[ped.Instructions.Count - 1].Reverse = true;
                        if (ped.InitialInstruction >= j) ped.InitialInstruction--;
                    }
                    else
                    {
                    }
                }
                Peds.Add(ped);
            }
        }