void Awake()
    {
        title_turret.SetSelected(true);
        title_turret.button.onClick.AddListener(
            delegate {
            title_enemy.SetSelected(false);
            title_turret.SetSelected(true);

            currentManual = 0;
            Switch(0);
        }

            );
        title_enemy.SetSelected(false);
        title_enemy.button.onClick.AddListener(
            delegate {
            title_enemy.SetSelected(true);
            title_turret.SetSelected(false);

            currentManual = 1;
            Switch(1);
        }

            );

        CreateButtons();
        Switch(0);
    }
示例#2
0
    // Start is called before the first frame update/
    void Start()
    {
        enemyController = gameObject.GetComponent <EnemyController>();
        mapController   = gameObject.GetComponent <MapController>();

        upUI = GameObject.Find("UpUI").GetComponent <UpUIController>();

        if (stageInfo == null)
        {
            int level = 0;

            if (PlayerInfo.instance != null)
            {
                level        = PlayerInfo.instance.level;
                this.endless = PlayerInfo.instance.endless;
            }

            if (endless)
            {
                this.stageInfo = new StageInfo();
            }
            else
            {
                this.stageInfo = new StageInfo(level);
            }
        }

        if (PlayerInfo.instance != null)
        {
            GameObject.Find("HeadFrameButton").GetComponent <Image>().sprite = Utils.GetAssistRoleInfo(PlayerInfo.instance.assist).image;
        }



        life = this.stageInfo.startLife;
        gold = this.stageInfo.startGold;

        upUI.headFrame.onClick.AddListener(

            delegate() {
            if (playing)
            {
                StartNewWave();
            }
            else
            {
                StartGame();
            }
        }

            );

        upUI.ShowGold(gold);
        upUI.ShowLife(life);

        pauseButton = GameObject.Find("PauseButton").GetComponent <SelectButton>();
        speedButton = GameObject.Find("SpeedButton").GetComponent <SelectButton>();

        pauseButton.button.onClick.AddListener(

            delegate {
            ClickPauseButton();
        }
            );
        pauseButton.SetSelected(false);
        speedButton.button.onClick.AddListener(

            delegate {
            ClickSpeedButton();
        }
            );
        speedButton.SetSelected(false);


        AudioManager.instance.PlayMusic("bgm01");

        //playing = true;
    }
示例#3
0
    // Update is called once per frame
    void Update()
    {
        upUI.ShowGold(gold);
        upUI.ShowLife(life);

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (!pausing)
            {
                //ClickPauseButton();
                Pause();
                ShowPauseMenu(true);
                pauseButton.SetSelected(true);
            }
            else
            {
                Resume();
                ShowPauseMenu(false);
                pauseButton.SetSelected(false);
            }
            return;
        }

        if (Input.GetKeyDown(KeyCode.Tab))
        {
            ClickSpeedButton();
        }

        if (playing)
        {
            #region UI控制
            //upUI.ShowGold(gold);
            //upUI.ShowLife(life);

            if (endless)
            {
                upUI.ShowWave(currentWave);
            }
            else
            {
                upUI.ShowWave(currentWave, stageInfo.waveCount);
            }
            //upUI.ShowLeftTime();
            if (currentWave >= 0)
            {
                upUI.ShowLeftTime(waveCountdown, currentWaveInfo.waveTime);
            }
            #endregion



            gameState = CheckWin();

            if (gameState == 1)
            {
                Win();
            }
            else if (gameState == -1)
            {
                Lose();
            }
            else
            {
                if (waveCountdown <= 0)                         //倒计时结束
                {
                    if (currentWave == stageInfo.waveCount - 1) //是最后一波
                    {
                        if (endless)
                        {
                            StartNewWave();
                        }
                    }
                    else //否则开始新的一波
                    {
                        StartNewWave();
                    }
                }
                else //继续倒计时
                {
                    waveCountdown -= Time.deltaTime;
                }


                //如果正在放的波次小于最大值,把等待队列中的波次释放
                if (wave_releasing.Count < MAX_WAVES)
                {
                    if (wave_waiting.Count > 0)
                    {
                        Wave w = wave_waiting.Dequeue();
                        wave_releasing.Add(w);

                        StartCoroutine(CreateEnemies(w));
                    }
                }
            }
        }
    }