Esempio n. 1
0
    void SpawnSpikes()
    {
        DestroySpikes();
        Debug.Log("Spawning Spikes");

        int   numSpikesToSpawn = Random.Range(8, 11);
        float minZ             = DoorsNext.transform.position.z - Radius * 0.15f;
        float maxZ             = DoorsNext.transform.position.z - Radius * 0.6f;

        for (int s = 0; s < numSpikesToSpawn; ++s)
        {
            float zPos = Random.Range(minZ, maxZ + 1);
            float xPos = Random.Range(-4, 5);
            while (!SpawnPositionValid(new Vector3(xPos, -1, zPos)))
            {
                zPos = Random.Range(minZ, maxZ + 1);
                xPos = Random.Range(-4, 5);
            }
            GameObject spike = Instantiate(Resources.Load(Random.Range(0, 2) == 1 ? "SpikeTree" : "SpikeTree2", typeof(GameObject))) as GameObject;
            Spikes.Add(spike);
            Vector3 spikePos   = spike.transform.position;
            Vector3 loweredPos = spike.GetComponent <SpikeController>().LoweredPosition;
            spikePos.Set(xPos, loweredPos.y, zPos);
            spike.transform.position = spikePos;
            SpikeController spikeController = spike.GetComponent <SpikeController>();
            if (spikeController != null)
            {
                spikeController.State             = SpikeController.SpikeState.Lowered;
                spikeController.RiseFallFrequency = Random.Range(0.5f, 1.5f);
            }
        }
    }
 void Awake()
 {
     spikes      = GameObject.Find("SpikeController").GetComponent <SpikeController> ();
     checkPoints = GameObject.Find("CheckpointController").GetComponent <CheckpointController> ();
     shatters    = GameObject.Find("ShatterBoxController").GetComponent <ShatterBoxController> ();
     slopes      = GameObject.Find("SlopeController").GetComponent <SlopeController> ();
     bool stop = false;
 }
 void Awake()
 {
     spikes = GameObject.Find ("SpikeController").GetComponent<SpikeController> ();
     checkPoints = GameObject.Find ("CheckpointController").GetComponent<CheckpointController> ();
     shatters = GameObject.Find ("ShatterBoxController").GetComponent<ShatterBoxController> ();
     slopes = GameObject.Find ("SlopeController").GetComponent<SlopeController> ();
     bool stop = false;
 }
Esempio n. 4
0
    private void OnTriggerEnter(Collider other)
    {
        SpikeController spike = other.gameObject.GetComponent <SpikeController>();

        if (spike != null)
        {
            Debug.Log("Spiked!");
            DiedTrigger diedSound = GetComponent <DiedTrigger>();
            if (diedSound != null)
            {
                diedSound.TriggerSound();
            }
            if (OnPlayerDied != null)
            {
                OnPlayerDied();
            }
        }
    }
Esempio n. 5
0
    public void LoadLevelPieces(List <int> levelPieceIndices, bool loadRecycledPieces)
    {
        for (int i = 0; i < levelPieceIndices.Count; i++)
        {
            int pieceIndex = levelPieceIndices[i];

            LevelPieceModel levelPieceModel = levelPieceModels[pieceIndex];
            levelPieceModel.isEnabled = true;

            LevelPieceController levelPiece = levelPiecePrefab.Spawn(transform, Vector3.zero, Quaternion.identity);
            levelPiece.Reset();
            levelPiece.levelPieceModel = levelPieceModel;

            levelPiece.topBorder.transform.localPosition    = new Vector3(0, levelPieceModel.topBorderY, 0);
            levelPiece.bottomBorder.transform.localPosition = new Vector3(0, levelPieceModel.bottomBorderY, 0);

            Transform levelPieceTransform = levelPiece.gameObject.transform;

            if ((loadRecycledPieces || !isInitialized) && i == 0)
            {
                bottomPieceTop.transform.position = levelPiece.topBorder.transform.position;
            }

            if (loadRecycledPieces)
            {
                float piecePos = recycledLevelPieces[recycledLevelPieces.Count - 1].Value;
                recycledLevelPieces.RemoveAt(recycledLevelPieces.Count - 1);

                levelPieceTransform.Translate(new Vector3(0, piecePos, 0));
                loadedLevelPieces.Insert(0, levelPiece);

                bottomPieceTop.transform.position = levelPiece.topBorder.transform.position;
            }
            else
            {
                if (loadedLevelPieces.Count != 0)
                {
                    LevelPieceController topPiece = loadedLevelPieces[loadedLevelPieces.Count - 1];
                    levelPieceTransform.Translate(new Vector3(0, topPiece.topBorder.transform.position.y + 2, 0));
                }
                else
                {
                    levelPieceTransform.Translate(new Vector3(0, 0, 0));
                }

                if (i == levelPieceIndices.Count - 1)
                {
                    topPieceBottom.transform.position = levelPiece.bottomBorder.transform.position;
                }

                loadedLevelPieces.Add(levelPiece);
            }

            // create cicles
            foreach (CircleModel circle in levelPieceModel.circles)
            {
                CircleController circleInstance = null;
                switch (circle.circleType)
                {
                case CircleModel.CircleType.CIRCLE_1:
                {
                    circleInstance = circle1Prefab.Spawn(levelPieceTransform, circle.position, Quaternion.identity);
                    break;
                }

                case CircleModel.CircleType.CIRCLE_2:
                {
                    circleInstance = circle2Prefab.Spawn(levelPieceTransform, circle.position, Quaternion.identity);
                    break;
                }

                case CircleModel.CircleType.CIRCLE_3:
                {
                    circleInstance = circle3Prefab.Spawn(levelPieceTransform, circle.position, Quaternion.identity);
                    break;
                }

                case CircleModel.CircleType.CIRCLE_4:
                {
                    circleInstance = circle4Prefab.Spawn(levelPieceTransform, circle.position, Quaternion.identity);
                    break;
                }
                }
                circleInstance.Reset();

                levelPiece.circles.Add(circleInstance);
            }

            // create spikes
            foreach (SpikeModel spike in levelPieceModel.spikes)
            {
                SpikeController spikeInstance = spikePrefab.Spawn(levelPieceTransform, spike.position, Quaternion.identity);
                spikeInstance.transform.localScale = new Vector3(spike.scale, spike.scale, 1);
                spikeInstance.FixShadowPosition();

                levelPiece.spikes.Add(spikeInstance);
            }
        }
    }