Exemple #1
0
    // Update is called once per frame
    void Update()
    {
        nowTime += Time.deltaTime * timeLevel.SlipRatio * _eventRatio * _fEventRatio;
        SetImage();

        if (_eventRatio != 0)
        {
            if (!IsPinch && nowTime > maxTime / 4.0f * 3.0f)
            {
                GameScene gameScene = transform.root.gameObject.GetComponent<AppliController>().GetCurrentScene().GetComponent<GameScene>();
                gameScene.gameUI.gamePause.IsPinch = true;
                IsPinch = true;
                timeImage.color = Color.red;
                if(gameScene.gameUI.gameInfoCanvas.feverGauge.feverState != _eFeverState.FEVER)
                {
                    gameScene.StopBGM(GameScene._eGameSceneBGM.GAME);
                    gameScene.PlayBGM(GameScene._eGameSceneBGM.PINCH);
                }

            }
            if (IsPinch && nowTime <= maxTime / 4.0f * 3.0f)
            {
                GameScene gameScene = transform.root.gameObject.GetComponent<AppliController>().GetCurrentScene().GetComponent<GameScene>();
                gameScene.gameUI.gamePause.IsPinch = false;
                IsPinch = false;
                timeImage.color = Color.white;
                if (gameScene.gameUI.gameInfoCanvas.feverGauge.feverState != _eFeverState.FEVER)
                {
                    gameScene.StopBGM(GameScene._eGameSceneBGM.PINCH);
                    gameScene.PlayBGM(GameScene._eGameSceneBGM.GAME);
                }
            }
        }

        if (nowTime > maxTime)
        {
            //ここにゲームオーバー処理
            nowTime = maxTime - 0.1f;
            _eventRatio = 0.0f;
            GameScene gameScene = transform.root.gameObject.GetComponent<AppliController>().GetCurrentScene().GetComponent<GameScene>();
            gameScene.gameController.nodeController.TapRelease();
            gameScene.gameController.nodeController.DoKillAllNode();
            gameScene.gameController.nodeController.isNodeLock = true; //ノードを操作不能にする
            //スコアをもってくる
            GameInfoCanvas gInfoCanvas = GetComponentInParent<GameInfoCanvas>();
            int Rank = gInfoCanvas.score.Decide(transform);
            //ゲームオーバー時のパネルを出して、タップでリザルト画面に行く
            GameObject gameEndPanelObject = (GameObject)Instantiate(Resources.Load<GameObject>(gameEndPanelPath));
            GameEndPanel gameEndpanel = gameEndPanelObject.GetComponent<GameEndPanel>();
            gameEndpanel.transform.SetParent(gameScene.gameUI.gamePause.optionCanvas.transform);
            gameEndpanel.transform.position = new Vector3(0.0f, 0.0f, 0.0f);
            gameEndpanel.transform.localPosition = new Vector3(0.0f, 1334.0f, 0.0f);
            gameEndpanel.SetScore(gInfoCanvas.score.GameScore, Rank);
            gameScene.gameUI.gamePause.IsPinch = false;
            IsPinch = false;
            //ボタンでなく時間経過で勝手に移行するように
            // リザルトへ戻るボタンを設定
            TMethod del = () => {
                AppliController AppliCtr = GetComponentInParent<AppliController>();
                AppliCtr.ChangeScene(AppliController._eSceneID.RANKING, 0.5f, 0.5f);
            };

            StartCoroutine(ToResult(del));

            gameEndpanel.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f);

            //オプションボタンをノンアクに
            gameScene.gameUI.gamePause.optionCanvas.gameObject.GetComponentInChildren<Button>().interactable = false;
            return;
        }

        //時間経過による難易度変更処理
        if(nowTimeLevel < levelTableScript.TimeLevelCount -1 && Time.time - startTime > timeLevelInterval * (nowTimeLevel + 1) )
        {
            nowTimeLevel++;
            timeLevel = levelTableScript.GetTimeLevel(nowTimeLevel);
        }
    }
Exemple #2
0
    // Use this for initialization
    void Start()
    {
        GameScene gameScene = transform.root.gameObject.GetComponent<AppliController>().GetCurrentScene().GetComponent<GameScene>();
        Vector2 effectTimeInfo = gameScene.gameController.nodeController.gameObject.GetComponent<GameEffect>().effectTimeInfo;
        gainWaitTime = effectTimeInfo.x;
        fillWaitTime = effectTimeInfo.y;
        timeLevel = levelTableScript.GetTimeLevel(0);
        timeLevelInterval = levelTableScript.TimeLevelInterval;
        startTime = Time.time;

        nowTimeLevel = 0;

        ojityanAnimator = gameScene.gameUI.ojityanAnimator;
        _eventRatio = 0.0f; //開始演出が終わるまでは時間が減らない
        _fEventRatio = 1.0f;
    }