Beispiel #1
0
    void SetFiring(bool firing)
    {
        if(firing) {
            isFiring = true;

            for(int i = 0; i < laserLength; i++) {
                PoolableSprite beam = beamPool.GetPooled().GetComponent<PoolableSprite>();

                if(verticalFire)
                    beam.transform.position = firingPosition.position + new Vector3(0,i*laserPieceLength);
                else
                    beam.transform.position = firingPosition.position + new Vector3(i*laserPieceLength,0);

                beam.gameObject.SetActive(true);
                beam.SendMessage("SetTurret",transform);
                beams.Add(beam);
            }
            end = endPool.GetPooled().GetComponent<PoolableSprite>();
            if(verticalFire)
                end.transform.position = firingPosition.position + new Vector3(0,(laserLength)*laserPieceLength);
            else
                end.transform.position = firingPosition.position + new Vector3((laserLength)*laserPieceLength,0);

            end.gameObject.SetActive(true);
            end.SendMessage("SetTurret",transform);
            StartCoroutine(Timers.Countdown<bool>(onTime,SetFiring,false));
        } else {
            isFiring = false;
            TurnOffBeams();
            StartCoroutine(Timers.Countdown<bool>(offTime,SetFiring,true));
        }
    }
Beispiel #2
0
    private void Start()
    {
        TilePools   = new List <Pool <PoolableSprite> >();
        ActiveTiles = new List <PoolableSprite>();

        foreach (PoolableSprite Tile in TilePrefabs)
        {
            TilePools.Add(new Pool <PoolableSprite>(Tile, 10, 10, Pool <PoolableSprite> .EPoolType.GameObject));
        }

        int            rand_idx = Random.Range(0, TilePools.Count);
        PoolableSprite FirstTile;

        if (TilePools[rand_idx].GetAvailable(false, out FirstTile))
        {
            FirstTile.transform.SetParent(transform);
            FirstTile.transform.localPosition = Vector3.zero;

            LastTile = FirstTile;
            ActiveTiles.Add(FirstTile);
        }

        ScreenPosition = GameCore.Instance.GameCamera.WorldToScreenPoint(transform.position);

        // Spawn the first tiles on the right
        bool bContinue = true;

        do
        {
            SpawnGroundTile();

            Vector3 NextTileScreenPosition = GameCore.Instance.GameCamera.WorldToScreenPoint(LastTile.transform.position);
            bContinue = NextTileScreenPosition.x - ScreenPosition.x < Screen.width * 1.3333f;
        }while (bContinue);
    }
Beispiel #3
0
    void SpawnGroundTile()
    {
        PoolableSprite NextTile;
        int            rand_idx = Random.Range(0, TilePools.Count);

        if (TilePools[rand_idx].GetAvailable(false, out NextTile))
        {
            NextTile.transform.SetParent(transform);
            Vector3 NextPos = LastTile.transform.position;
            NextPos.x += LastTile.Renderer.bounds.extents.x + NextTile.Renderer.bounds.extents.x;
            NextTile.transform.position = NextPos;

            LastTile = NextTile;
            ActiveTiles.Add(NextTile);
        }
    }
Beispiel #4
0
    void SetFiring(bool firing)
    {
        if (firing)
        {
            isFiring = true;

            for (int i = 0; i < laserLength; i++)
            {
                PoolableSprite beam = beamPool.GetPooled().GetComponent <PoolableSprite>();

                if (verticalFire)
                {
                    beam.transform.position = firingPosition.position + new Vector3(0, i * laserPieceLength);
                }
                else
                {
                    beam.transform.position = firingPosition.position + new Vector3(i * laserPieceLength, 0);
                }

                beam.gameObject.SetActive(true);
                beam.SendMessage("SetTurret", transform);
                beams.Add(beam);
            }
            end = endPool.GetPooled().GetComponent <PoolableSprite>();
            if (verticalFire)
            {
                end.transform.position = firingPosition.position + new Vector3(0, (laserLength) * laserPieceLength);
            }
            else
            {
                end.transform.position = firingPosition.position + new Vector3((laserLength) * laserPieceLength, 0);
            }

            end.gameObject.SetActive(true);
            end.SendMessage("SetTurret", transform);
            StartCoroutine(Timers.Countdown <bool>(onTime, SetFiring, false));
        }
        else
        {
            isFiring = false;
            TurnOffBeams();
            StartCoroutine(Timers.Countdown <bool>(offTime, SetFiring, true));
        }
    }