Пример #1
0
 /// <summary>
 /// 指定フレーム後に指定の関数を行うコルーチン
 /// ※関数はdelegate型で宣言したものにラムダ式を用いて代入している
 /// </summary>
 /// <param name="frame">待つフレーム</param>
 /// <param name="func">行う関数</param>
 /// <returns>1フレームずつ値を返す</returns>
 private IEnumerator RunCoroutine(int frame, routineFunc func)
 {
     for (int i = 0; i < frame; i++)
     {
         yield return(new WaitForEndOfFrame());
     }
     func();
 }
Пример #2
0
 /// <summary>
 /// タイトルシーンに遷移するためにカウンタを加算する関数
 /// </summary>
 private void ReturnOpeningScene()
 {
     backcnt++;
     if (backcnt == BACK_OP)
     {
         FadeIO.fadeIo.SetFadeImage(FadeIO.white);
         FadeIO.fadeIo.FadeOut(Menu.FADE);
         BGMMaster.AudioFadeOutStart(Menu.FADE);
         SEMaster.AudioFadeOutStart(Menu.FADE);
         runningFunc = () => ReturnBackScene();
         StartCoroutine(RunCoroutine(Menu.FADE, runningFunc));
     }
 }
Пример #3
0
 /// <summary>
 /// ゲーム終了
 /// </summary>
 void GameEnd()
 {
     if (KeyLoader.keyLoader.A)
     {
         SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Cancel));
         menuSelect = false;
         KeyLoader.keyLoader.SetKeyWait(Menu.FADE);
         SaveData.AllSave();
         FadeIO.fadeIo.SetFadeImage(FadeIO.black);
         FadeIO.fadeIo.FadeOut(Menu.FADE);
         BGMMaster.AudioFadeOutStart(Menu.FADE);
         SEMaster.AudioFadeOutStart(Menu.FADE);
         runningFunc = () => Shutdown();
         StartCoroutine(RunCoroutine(Menu.FADE, runningFunc));
     }
 }
Пример #4
0
 /// <summary>
 /// ゲーム開始
 /// </summary>
 void GameStart()
 {
     if (KeyLoader.keyLoader.A)
     {
         SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Decide));
         menuSelect = false;
         KeyLoader.keyLoader.SetKeyWait(Menu.FADE);
         StageSelect.stage = Menu.MONSTER;
         SaveData.AllSave();
         FadeIO.fadeIo.SetFadeImage(FadeIO.black);
         FadeIO.fadeIo.FadeOut(Menu.FADE);
         BGMMaster.AudioFadeOutStart(Menu.FADE);
         SEMaster.AudioFadeOutStart(Menu.FADE);
         runningFunc = () => LoadNextScene();
         StartCoroutine(RunCoroutine(Menu.FADE, runningFunc));
     }
 }
Пример #5
0
    /// <summary>
    /// フロアを選ぶ関数
    /// </summary>
    private void SelectFloor()
    {
        Floor_Draw();
        //選んだステージのフロアに入る処理
        if (!floorMove.isMoving && !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.A)
        {
            SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Decide));
            KeyLoader.keyLoader.SetKeyWait(Menu.FADE);
            KeyLoader.keyLoader.SetStickWait(Menu.FADE);
            FadeIO.fadeIo.FadeOut(Menu.FADE);
            BGMMaster.AudioFadeOutStart(Menu.FADE);
            SEMaster.AudioFadeOutStart(Menu.FADE);
            runningFunc = () => LoadGameScene();
            StartCoroutine(RunCoroutine(Menu.FADE, runningFunc));
        }
        //ステージ選択に戻る処理
        else if (!floorMove.isMoving && !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.B)
        {
            mode = STAGE_SELECT;
            SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Cancel));
            StartCoroutine(floorMove.SlideOut());
            KeyLoader.keyLoader.SetStickWait(Menu.FADE);

            stCur.Set(true);
        }
        //ポーズ画面を開く処理
        else if (!floorMove.isMoving && !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.StartKey)
        {
            temp = mode;
            mode = PAUSE;
            SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Pause));
            pause.Open();       //画面を開く処理
        }
        //ジョイスティック入力:上
        else if (!floorMove.isMoving && !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.joyStickAxis.y > 0)
        {
            int before = floor;
            //一つ上のフロアが未開放フロアまたはフロア6ならフロア1に戻す
            if (ClearFloor[stage] <= floor || floor >= Menu.FLOOR6)
            {
                floor = Menu.FLOOR1;
            }
            else
            {
                floor++;
            }
            if (before != floor)
            {
                SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Move));
            }
            KeyLoader.keyLoader.SetStickWait(RESET_FLOOR_FRAME);
        }
        //ジョイスティック入力:下
        else if (!floorMove.isMoving && !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.joyStickAxis.y < 0)
        {
            int before = floor;
            //1階目で操作した際に挑戦可能な最高フロアに戻す処理
            if (floor == Menu.FLOOR1)
            {
                if (ClearFloor[stage] == Menu.FLOOR_NUM)
                {
                    floor = Menu.FLOOR6;
                }
                else
                {
                    floor = ClearFloor[stage];
                }
            }
            else
            {
                floor--;
            }
            if (before != floor)
            {
                SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Move));
            }
            KeyLoader.keyLoader.SetStickWait(RESET_FLOOR_FRAME);
        }
    }
Пример #6
0
    /// <summary>
    /// ステージを選ぶ関数
    /// </summary>
    private void SelectStage()
    {
        //ステージを決定する処理
        if (!mainCameraObj.isRotation && !floorMove.isMoving &&
            !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.A)
        {
            //modeを変更し、フロア選択に処理を移る
            mode = FLOOR_SELECT;
            SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Decide));
            StartCoroutine(floorMove.SlidePut());
            floorBackSprite.SetImage();
            BestTimeNum.SetBestTime();
            floorTop.SetImage();
            floor = Menu.FLOOR1;

            floorNameManager.SetName();
            stCur.Set(false);

            KeyLoader.keyLoader.SetStickWait(RESET_STAGE_FRAME);
        }
        //タイトルに戻る処理
        else if (!mainCameraObj.isRotation && !floorMove.isMoving &&
                 !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.B)
        {
            SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Cancel));
            KeyLoader.keyLoader.SetKeyWait(Menu.FADE);
            FadeIO.fadeIo.FadeOut(Menu.FADE);
            BGMMaster.AudioFadeOutStart(Menu.FADE);
            SEMaster.AudioFadeOutStart(Menu.FADE);
            runningFunc = () => LoadTitleScene();
            StartCoroutine(RunCoroutine(Menu.FADE, runningFunc));
            KeyLoader.keyLoader.SetStickWait(RESET_STAGE_FRAME);
        }
        //ポーズ画面を開く処理
        else if (!mainCameraObj.isRotation && !floorMove.isMoving &&
                 !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.StartKey)
        {
            temp = mode;
            mode = PAUSE;
            SEMaster.Play(KeyInputSE.keyInoutSE.GetClip(KeyInputSE.Type.Pause));
            pause.Open();

            stCur.Set(false);
        }
        //ジョイスティック入力:右
        else if (!mainCameraObj.isRotation && !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.joyStickAxis.x > 0)
        {
            if (stage == Menu.GOD)
            {
                stage = Menu.MONSTER;
            }
            else
            {
                stage++;
            }

            SEMaster.Play(stageSelectSE);
            StartCoroutine(mainCameraObj.Right(stage));
            StartCoroutine(stNameObj.TargetFrameMoveRightReset(CAMERA_ROTATION_TIME));
            KeyLoader.keyLoader.SetStickWait(RESET_STAGE_FRAME);
        }
        //ジョイスティック入力:左
        else if (!mainCameraObj.isRotation && !KeyLoader.keyLoader.StickWait && KeyLoader.keyLoader.joyStickAxis.x < 0)
        {
            if (stage == Menu.MONSTER)
            {
                stage = Menu.GOD;
            }
            else
            {
                stage--;
            }
            SEMaster.Play(stageSelectSE);
            StartCoroutine(mainCameraObj.Left(stage));
            StartCoroutine(stNameObj.TargetFrameMoveLeftReset(CAMERA_ROTATION_TIME));
            KeyLoader.keyLoader.SetStickWait(RESET_STAGE_FRAME);
        }
    }