Esempio n. 1
0
        /// <summary>
        /// スクロールビューを入れ替える
        /// </summary>
        /// <param name="arg_view1">一つめのViewオブジェ</param>
        /// <param name="arg_view2">二つ目のViewオブジェ</param>
        private void ChangingScrollView(GameObject arg_view1, GameObject arg_view2)
        {
            //この関数が呼ばれた時のステートを取得しておく
            m_whenChangesState = m_state;

            m_isChangingScrollView = true;

            Vector3 pos1 = arg_view1.transform.localPosition;
            Vector3 pos2 = arg_view2.transform.localPosition;

            Hashtable hashtable1 = new Hashtable();

            hashtable1.Add("position", pos2);
            hashtable1.Add("islocal", true); //ローカル座標に変換
            hashtable1.Add("time", 1);       //Tweenの時間

            iTween.MoveTo(arg_view1, hashtable1);

            Hashtable hashtable2 = new Hashtable();

            hashtable2.Add("position", pos1);
            hashtable2.Add("islocal", true);                //ローカル座標に変換
            hashtable2.Add("time", 1);                      //Tweenの時間
            hashtable2.Add("oncomplete", "ChangingEnd");    //Tween終了時に呼ばれる処理
            hashtable2.Add("oncompletetarget", gameObject); //↑の処理を持っているオブジェクトを明記

            iTween.MoveTo(arg_view2, hashtable2);
        }
Esempio n. 2
0
        public override IEnumerator OnEnter()
        {
            //ステージの踏破具合などを取得
            m_stageSelectInfo.Initialize();

            //背景動かしさんを初期化
            m_backGroundMover.Initialize();

            //最初のステートはステージを選ぶ段階
            m_state = SelectSceneState.StageSelect;

            m_halfPointContent = m_halfPointSelectScrollView.transform.Find("Viewport/Content").gameObject;

            m_isChangingScrollView = false;

            m_trueSprite = Resources.Load <Sprite>("Contents/StageSelect/Textures/SP_HalfPointButton_Normal");

            m_falseSprite = Resources.Load <Sprite>("Contents/StageSelect/Textures/SP_HalfPointButton_False");

            //スクリーンで最初に使われている画像を取得
            m_screenBase = m_screenImage.sprite;

            //ステージ選択ボタンの初期化
            for (int i = 0; i < m_stageSelectButton.Length; i++)
            {
                StageSelectButtonInfo temp = new StageSelectButtonInfo();

                temp = m_stageSelectButtonInfo[i];

                m_stageSelectButton[i].onClick.AddListener(() => { OnStageSelectedPress(temp); });

                //到達率をInfoから取得
                int arrivalCount = m_stageSelectInfo.GetOpenStageCount();

                Image image = m_stageSelectButton[i].GetComponent <Image>();

                //生成されたのが一個目のボタンなら
                if (i == 0)
                {
                    image.sprite = m_trueSprite;
                }
                //生成したボタンが到達率より低いボタンなら
                else if (i < arrivalCount)
                {
                    image.sprite = m_trueSprite;
                }
                //生成したボタンが到達率より高いボタンなら
                else
                {
                    //ボタンのグラフィックを灰色の物に差し替え、Buttonを切る
                    image.sprite = m_falseSprite;
                    m_stageSelectButton[i].GetComponent <Button>().enabled = false;
                }
            }

            m_sceneString = "";

            m_stageSelectScrollView.SetActive(false);
            m_stageSelectScrollView.SetActive(true);

            AudioManager.Instance.RegisterBGM("BGM_StageSelect");
            AudioManager.Instance.PlayBGM(1.5f);

            AppManager.Instance.m_fade.StartFade(new FadeIn(), Color.black, 1.0f);
            yield return(new WaitWhile(AppManager.Instance.m_fade.IsFading));
        }
Esempio n. 3
0
        public override IEnumerator OnUpdate()
        {
            while (true)
            {
                switch (m_state)
                {
                //ステージを選ぶ
                case SelectSceneState.StageSelect:

                    //ステージが選ばれたら遷移
                    if (m_isStageSelect)
                    {
                        m_backGroundMover.FocusAtPoint(AppManager.Instance.user.m_temp.m_playStageId);
                        CreateHalfPointButtons(AppManager.Instance.user.m_temp.m_playStageId);

                        //戻るボタン、ステージセレクトボタンを一時的に押せなくする
                        ChangeButtonActive(false);

                        m_state = SelectSceneState.BackGroundMoving;

                        m_isStageSelect = false;
                    }

                    //戻るボタンが押されたら
                    if (m_isBack)
                    {
                        //タイトルシーンへ戻りますか?

                        m_isBack = false;

                        //モーダルの表示
                        UIManager.Instance.PopupGameReadyModal("タイトルへ戻りますか?", () => {
                            AudioManager.Instance.QuickPlaySE("SE_StageSelectButton");
                            m_sceneString = "Title";
                        });
                    }

                    break;

                //背景が動いている
                case SelectSceneState.BackGroundMoving:

                    //動きが止まったら遷移
                    if (!m_backGroundMover.IsFocusing())
                    {
                        ChangingScrollView(m_stageSelectScrollView, m_halfPointSelectScrollView);
                        m_state = SelectSceneState.ChangingView;
                    }
                    break;

                //スクロールビューを入れ替えている
                case SelectSceneState.ChangingView:

                    //入れ替えが終了したら遷移
                    if (!m_isChangingScrollView)
                    {
                        //レイヤーの押せなくなっている状態を解除
                        ChangeButtonActive(true);

                        //BackGroundMovingから呼ばれたのなら、中間地点を選ぶステートへ
                        if (m_whenChangesState == SelectSceneState.BackGroundMoving)
                        {
                            m_state = SelectSceneState.SelectHalfPoint;
                        }
                        //SelectHalfPointから呼ばれたのなら、ステージを選ぶステートへ
                        else if (m_whenChangesState == SelectSceneState.SelectHalfPoint)
                        {
                            //生成されていたボタンを削除
                            DestroyHalfPointButtons();
                            m_state = SelectSceneState.StageSelect;
                        }
                    }

                    break;

                //中間地点を選ぶ
                case SelectSceneState.SelectHalfPoint:

                    //戻るボタンが押されたら遷移
                    if (m_isBack)
                    {
                        //戻るボタン、ステージセレクトボタンを一時的に押せなくする
                        ChangeButtonActive(false);

                        //スクロールを入れ変える
                        ChangingScrollView(m_stageSelectScrollView, m_halfPointSelectScrollView);
                        m_state = SelectSceneState.ChangingView;

                        //スクリーン画像を最初の画像に戻す
                        m_screenImage.sprite = m_screenBase;

                        m_isBack = false;
                    }

                    break;
                }

                //遷移するシーンが決まったら遷移する
                if (m_sceneString == "Main" || m_sceneString == "Title")
                {
                    yield break;
                }
                yield return(null);
            }
        }
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit();
            return;
        }
        switch (currentState)
        {
        case SelectSceneState.FIRST_SELECTED:

            if (Input.GetKeyDown(KeyCode.Return))
            {
                Global.player1Selected = ControllerSelector.KEYBOARD_LEFT;
                player1ObjRef.SetActive(true);
                player1ImageRef.sprite = showSelecteds[0];
                currentState           = SelectSceneState.SECOND_SELECTED;
            }
            else if (Input.GetKeyDown(KeyCode.KeypadEnter))
            {
                Global.player1Selected = ControllerSelector.KEYBOARD_RIGHT;
                player1ObjRef.SetActive(true);
                player1ImageRef.sprite = showSelecteds[0];
                currentState           = SelectSceneState.SECOND_SELECTED;
            }
            else if (Input.GetKeyDown(KeyCode.Joystick1Button7))
            {
                Global.player1Selected = ControllerSelector.JOYSTICK_FIRST;
                player1ObjRef.SetActive(true);
                player1ImageRef.sprite = showSelecteds[1];
                currentState           = SelectSceneState.SECOND_SELECTED;
            }
            else if (Input.GetKeyDown(KeyCode.Joystick2Button7))
            {
                Global.player1Selected = ControllerSelector.JOYSTICK_SECOND;
                player1ObjRef.SetActive(true);
                player1ImageRef.sprite = showSelecteds[1];
                currentState           = SelectSceneState.SECOND_SELECTED;
            }
            break;

        case SelectSceneState.SECOND_SELECTED:
            if (Input.GetKeyDown(KeyCode.Return))
            {
                Global.player2Selected = (Global.player1Selected == ControllerSelector.KEYBOARD_LEFT) ? ControllerSelector.KEYBOARD_RIGHT : ControllerSelector.KEYBOARD_LEFT;
                player2ObjRef.SetActive(true);
                player2ImageRef.sprite = showSelecteds[0];
                currentState           = SelectSceneState.SHOW_TUTORIAl;
            }
            else if (Input.GetKeyDown(KeyCode.KeypadEnter))
            {
                Global.player2Selected = (Global.player1Selected == ControllerSelector.KEYBOARD_RIGHT) ? ControllerSelector.KEYBOARD_LEFT : ControllerSelector.KEYBOARD_RIGHT;
                player2ObjRef.SetActive(true);
                player2ImageRef.sprite = showSelecteds[0];
                currentState           = SelectSceneState.SHOW_TUTORIAl;
            }
            else if (Input.GetKeyDown(KeyCode.Joystick1Button7))
            {
                Global.player2Selected = (Global.player1Selected == ControllerSelector.JOYSTICK_FIRST) ? ControllerSelector.JOYSTICK_SECOND : ControllerSelector.JOYSTICK_FIRST;
                player2ObjRef.SetActive(true);
                player2ImageRef.sprite = showSelecteds[1];
                currentState           = SelectSceneState.SHOW_TUTORIAl;
            }
            else if (Input.GetKeyDown(KeyCode.Joystick2Button7))
            {
                Global.player2Selected = (Global.player1Selected == ControllerSelector.JOYSTICK_SECOND) ? ControllerSelector.JOYSTICK_FIRST : ControllerSelector.JOYSTICK_SECOND;
                player2ObjRef.SetActive(true);
                player2ImageRef.sprite = showSelecteds[1];
                currentState           = SelectSceneState.SHOW_TUTORIAl;
            }
            break;

        case SelectSceneState.SHOW_TUTORIAl:
            if (!tutorialObj.activeSelf)
            {
                tutorialState();
            }
            else if (Input.GetKeyDown(KeyCode.Joystick1Button7) || Input.GetKeyDown(KeyCode.Joystick2Button7) || Input.GetKeyDown(KeyCode.Return))
            {
                StartCoroutine(LoadScene());
            }
            break;
        }
    }