Пример #1
0
    /*---------------------------------------------------------------------*/
    /// <summary>
    /// ゲームクリア時の処理
    /// </summary>
    private void GameClear()
    {
        // スコアとボーナス燃料の取得
        float score = 0;

        ScoreCalc(_Lander._Status, _Lander._LandingPoint, out score, out fBonusFuel);

        // 総合スコアの更新
        fScore += score;

        // メッセージの情報更新と表示
        _UIManager.SetMsgActive(UI_MSG_ITEM.OUT_OF_FUEL, false);
        _UIManager.SetMsgItem <GameClearMsg.INFO_ITEM>(UI_MSG_ITEM.GAME_CLEAR, GameClearMsg.INFO_ITEM.SCORE, (int)score);
        _UIManager.SetMsgItem <GameClearMsg.INFO_ITEM>(UI_MSG_ITEM.GAME_CLEAR, GameClearMsg.INFO_ITEM.BONUSFUEL, (int)fBonusFuel);
        _UIManager.SetMsgActive(UI_MSG_ITEM.GAME_CLEAR, true);

        // クリアフラグをTrueに設定
        isClear = true;

        // 終了待ち処理の待ち開始時間の取得
        fStartTime = Time.timeSinceLevelLoad;

        // 更新処理の設定
        modeupdate = new ModeUpdate(GameClear_Update);
    }
Пример #2
0
    /*---------------------------------------------------------------------*/
    /// <summary>
    /// カメラモードの変更とモード初期設定
    /// </summary>
    /// <param name="mode">変更するモード</param>
    private void ChangeMode(MODE mode)
    {
        // モードの変更
        _Mode = mode;

        // ノーマルモードの初期設定
        if (_Mode == MODE.NORMAL)
        {
            // カメラサイズの設定
            _Camera.orthographicSize = Const.CameraData.MODE_NORMAL_SIZE;

            // 更新処理の設定
            modeupdate = new ModeUpdate(NormalUpdate);

            // カメラの座標を設定
            Vector3 vNormalPos = Vector3.zero;
            vNormalPos.z            = this.transform.position.z;
            this.transform.position = vNormalPos;

            // 画面を上方向に動かすY座標を設定する。
            vLeftTopLine.y = this.transform.position.y + Const.CameraData.NORMAL_TOP_LINE;
        }
        // ズームモードの初期設定
        if (_Mode == MODE.ZOOM)
        {
            // カメラサイズの設定
            _Camera.orthographicSize = Const.CameraData.MODE_ZOOM_SIZE;

            // 更新処理の設定
            modeupdate = new ModeUpdate(ZoomUpdate);

            // カメラの座標を設定
            Vector3 vZoomPos = _Lander.transform.position;

            // 範囲外を映している場合、X座標を移動させる。
            float fZoomWidth = Mathf.Abs(this.transform.position.x - GetScreenLeftTop().x);
            if (vZoomPos.x - fZoomWidth <= normalLeftTop.x)
            {
                vZoomPos.x = normalLeftTop.x + fZoomWidth;
            }
            else if (normalRightBottom.x <= vZoomPos.x + fZoomWidth)
            {
                vZoomPos.x = normalRightBottom.x - fZoomWidth;
            }
            //vZoomPos.y += _Lander.transform.localScale.y;
            vZoomPos.z = this.transform.position.z;
            this.transform.position = vZoomPos;

            // ズーム時の座用を保持
            vZoom = vZoomPos;

            // 画面を左右方向に動かすX座標を設定する。
            vLeftTopLine.x     = GetScreenLeftTop().x + Const.CameraData.ZOOM_LEFTRIGHT_LINE;
            vRightBottomLine.x = GetScreenRightBottom().x - Const.CameraData.ZOOM_LEFTRIGHT_LINE;
            // 画面を上方向に動かすY座標を設定する。
            vLeftTopLine.y     = vZoom.y + Const.CameraData.ZOOM_TOP_LINE;
            vRightBottomLine.y = vZoom.y - Const.CameraData.ZOOM_BOTTOM_LINE;
        }
    }
Пример #3
0
    /*---------------------------------------------------------------------*/
    /// <summary>
    /// ゲーム開始処理
    /// </summary>
    private void GameStart()
    {
        // 初期化フラグをFalseに設定
        _Lander.isInit = false;
        _Moon.isInit   = false;
        _Camera.isInit = false;

        // クリアフラグがTrueならばステージクリア後とし、ランダーを初期化する。
        if (isClear == true)
        {
            // ボーナス燃料を加算した値を渡す。
            _Lander.Init(_Lander._Status.GetStatus().fuel + fBonusFuel);
        }
        else
        {
            _Lander.Init();
        }
        _Camera.Init();         // カメラ初期化処理
        _Moon.Init();           // 月面初期化処理


        // クリアフラグをFalseに設定
        isClear = false;

        if (isRetry == true)
        {
            nStage = 0;
            fScore = 0;

            isRetry = false;
        }

        // ステージ番号の更新
        nStage++;

        // 開始待ち処理の待ち開始時間の取得
        fStartTime = Time.timeSinceLevelLoad;

        // UIのステージ番号と総合スコアの更新
        _UIManager.SetInfoItem(UI_INFO_ITEM.STAGE, nStage);
        _UIManager.SetInfoItem(UI_INFO_ITEM.SCORE, (int)fScore);

        // 表示する開始メッセージの情報更新と表示
        _UIManager.SetMsgItem <GameStartMsg.INFO_ITEM> (UI_MSG_ITEM.GAME_START, GameStartMsg.INFO_ITEM.STAGE, nStage);
        _UIManager.SetMsgActive(UI_MSG_ITEM.GAME_START, true);
        // 燃料切れメッセージが出ている可能性があるので非表示にする。
        _UIManager.SetMsgActive(UI_MSG_ITEM.OUT_OF_FUEL, false);

        // 初回ステージなら操作方法を表示する。
        if (isFirst == true)
        {
            _UIManager.HowToStart();
        }

        // 更新処理を設定
        modeupdate = new ModeUpdate(GameStart_Update);
    }
Пример #4
0
    /*---------------------------------------------------------------------*/
    /// <summary>
    /// ゲームオーバー時の処理
    /// </summary>
    private void GameOver()
    {
        // メッセージの情報更新と表示
        _UIManager.SetMsgActive(UI_MSG_ITEM.OUT_OF_FUEL, false);
        _UIManager.SetMsgItem <GameOverMsg.INFO_ITEM>(UI_MSG_ITEM.GAME_OVER, GameOverMsg.INFO_ITEM.CLEARSTAGE, nStage - 1);
        _UIManager.SetMsgItem <GameOverMsg.INFO_ITEM>(UI_MSG_ITEM.GAME_OVER, GameOverMsg.INFO_ITEM.SCORE, (int)fScore);
        _UIManager.SetMsgActive(UI_MSG_ITEM.GAME_OVER, true);

        // ログイン状態ならプレイデータを送信する。
        if (cGameManager.Instance.UserData.IsLogin)
        {
            isSendPlayData = true;
            StartCoroutine(SendPlayData());
        }
        else
        {
            // 終了待ち処理の待ち開始時間の取得
            fStartTime = Time.timeSinceLevelLoad;
        }

        // 更新処理の設定
        modeupdate = new ModeUpdate(GameOver_Update);
    }
Пример #5
0
    /*---------------------------------------------------------------------*/
    /// <summary>
    /// ゲームモードに変更に伴う処理を実行する。
    /// </summary>
    private void SwitchMode()
    {
        switch (_Mode)
        {
        case MAIN_GAME_MODE.GAME_START:
            GameStart();
            break;

        case MAIN_GAME_MODE.GAME_PLAYING:
            modeupdate = new ModeUpdate(GamePlaying_Update);
            break;

        case MAIN_GAME_MODE.GAME_END_CLEAR:
            GameClear();
            break;

        case MAIN_GAME_MODE.GAME_END_OVER:
            GameOver();
            break;

        default:
            break;
        }
    }
Пример #6
0
 public OneUpdate(ModeUpdate mode, Process changeProcess)
 {
     this.Mode = mode;
     this.Proc = changeProcess;
 }