Ejemplo n.º 1
0
        protected override void DestroyCar(Road.Car car, Vector3 position)
        {
            car.endPos  = position;
            car.endTime = Score.timer;

            var carInfo = new StatisticsManager.EnemyMoveInfo(
                car.startPos, car.startTime, car.endPos, car.endTime);

            StatisticsManager.PushCarInfo(carInfo);
        }
Ejemplo n.º 2
0
        private void DeactivateFirstRoadInQueue()
        {
            unusedRoads.Enqueue(usedRoads.Dequeue());
            var r = roadsRenderingNow.Dequeue();

            for (int i = 0; i < r.cars.Count; i++)
            {
                Road.Car  car = r.cars[i];
                Rigidbody rb  = car.rigidbody;
                unusedCars.Enqueue(car);
            }
        }
Ejemplo n.º 3
0
 protected virtual void DestroyCar(Road.Car car, Vector3 position)
 {
 }
Ejemplo n.º 4
0
 protected virtual void SpawnCar(Road.Car car, Vector3 position)
 {
 }
Ejemplo n.º 5
0
        public void MoveCars()
        {
            foreach (Road r in roadsRenderingNow)
            {
                //if (roadsRenderingNow.Count > 0)
                //	Debug.Log("roadsRenderingNow.Count " + roadsRenderingNow.Count);
                float sdist;
                for (int i = 0; i < r.cars.Count; i++)
                {
                    Road.Car  car = r.cars[i];
                    Rigidbody rb  = car.rigidbody;

                    bool state = false;
                    sdist = rb.position.x - car.startPos.x;
                    if (sdist > 0)
                    {
                        state = rb.position.x - character.position.x > 50;
                    }
                    if (sdist < 0)
                    {
                        state = rb.position.x - character.position.x < -50;
                    }
                    if (character.position.z - rb.position.z > 10 || state)
                    {
                        unusedCars.Enqueue(car);
                        r.cars.RemoveAt(i);
                        //Debug.Log("Destroy state" + state);
                        DestroyCar(car, rb.position);
                    }
                    else
                    {
                        rb.MovePosition(rb.position + Time.fixedDeltaTime * r.carsSpeed * Vector3.right);
                    }
                }

                sdist = r.center.z - character.position.z;
                if (sdist < 50 && sdist > 10 && r.cars.Count < 3 && unusedCars.Count > 0)
                {
                    Road.Car  car = unusedCars.Dequeue();
                    Rigidbody rb  = car.rigidbody;

                    float   speedSign = Mathf.Sign(r.carsSpeed);
                    float   xOffset   = speedSign * -50;
                    Vector3 carPos    = new Vector3(character.position.x + xOffset, r.center.y, r.center.z);

                    float carSpacing = 10 + 10 * Level.difficulty;

                    //if (r.cars.Count > 0 && Vector3.Distance(carPos, r.cars[r.cars.Count - 1].rigidbody.position) < carSpacing)
                    //	carPos = r.cars[r.cars.Count - 1].rigidbody.position + Mathf.Sign(xOffset) * carSpacing * Vector3.left;

                    if (r.cars.Count > 0 && (
                            Mathf.Abs(carPos.x - r.lastCarStartPos.x) < carSpacing ||
                            speedSign * (r.lastCarStartPos.x - carPos.x) < 0))
                    {
                        carPos = r.lastCarStartPos + speedSign * carSpacing * Vector3.left;
                    }

                    rb.position = carPos;
                    rb.rotation = r.carsSpeed < 0 ? inversCarRotation : carPrefab.transform.rotation;
                    rb.velocity = Vector3.zero;
                    r.cars.Add(car);
                    r.lastCarStartPos = carPos;
                    SpawnCar(car, carPos);
                }
            }
        }
Ejemplo n.º 6
0
 protected override void SpawnCar(Road.Car car, Vector3 position)
 {
     car.startPos  = position;
     car.startTime = Score.timer;
 }