/// <summary>
    ///
    /// </summary>
    void Update()
    {
        if (_loading)
        {
            if (_fader.FadeOutEnded)
            {
                LoadingSceneManager.LoadLevel(_nextLevelName);
            }
            return;
        }


        if (Input.anyKeyDown)
        {
            if (Input.GetButton("Attack"))
            {
                Load();
                return;
            }
            else if (Input.GetButton("Jump"))
            {
                return;
            }
            else if (Input.GetButton("Dash"))
            {
                Load("Title");
                return;
            }



            if (Input.GetKey(KeyCode.UpArrow))
            {
                ChangeItem(-1, 0);
            }
            else if (Input.GetKey(KeyCode.DownArrow))
            {
                ChangeItem(1, 0);
            }
            else if (Input.GetKey(KeyCode.LeftArrow))
            {
                ChangeItem(0, -1);
            }
            else if (Input.GetKey(KeyCode.RightArrow))
            {
                ChangeItem(0, 1);
            }
        }


        foreach (GameObject stagePoint in _stagePoints)
        {
            Debug.DrawRay(_earth.transform.position, stagePoint.transform.position);
        }
    }
Beispiel #2
0
    /// <summary>
    /// 프레임이 갱신될 때 MonoBehaviour 개체 정보를 업데이트 합니다.
    /// </summary>
    protected override void Update()
    {
        /// Handy: 하는 일이 없어서 삭제해도 될 것 같습니다.
        /// base.Update();

        if (_gameEnded)
        {
            if (_fader.FadeOutEnded)
            {
                LoadingSceneManager.LoadLevel("CS03_GaiaFound");
            }

            return;
        }

        // 페이드 인 효과가 종료되는 시점에
        if (_fader.FadeInEnded)
        {
            // 준비 애니메이션 재생을 시작합니다.
            PlayReadyAnimation();
        }

        // 특수 키 입력에 대한 처리입니다.
        if (Input.GetKeyDown(KeyCode.Q))
        {
            // 플레이 속도를 바꿉니다.
            _timeManager.TimeScale = _timeManager.TimeScale == test ? 1 : test;
        }
        else if (Input.GetKeyDown(KeyCode.W))
        {
            // 플레이어에게 대미지를 입힙니다.
            HurtPlayer();
        }
        else if (Input.GetKeyDown(KeyCode.R))
        {
            // 플레이어의 체력을 모두 회복합니다.
            HealPlayer();
        }

        //
        if (Input.GetKeyDown(KeyCode.Return))
        {
            _userInterfaceManager.RequestPauseToggle();
        }
    }
Beispiel #3
0
    // Update is called once per frame
    void Update()
    {
        if (fadeOutRequested)
        {
            if (fader.FadeOutEnded)
            {
                LoadingSceneManager.LoadLevel(loadingLevelName);
            }
            return;
        }

        // 캐릭터를 불러옵니다.
        if (loadEnd == false)
        {
            if (rbodyX.velocity.x < 0.5f)
            {
                rbodyX.velocity = new Vector2(0, 0);
                rbodyZ.velocity = new Vector2(0, 0);
                loadEnd         = true;
            }
            else
            {
//                rbodyX.velocity = new Vector2(rbodyX.velocity.x - 1.5f, 0);
//                rbodyZ.velocity = new Vector2(rbodyZ.velocity.x + 1.5f, 0);
            }
        }

        // 캐릭터를 선택합니다.
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            spriteX.sortingOrder = 2;
            spriteZ.sortingOrder = 0;
            backSpriteX.enabled  = true;
            backSpriteZ.enabled  = false;
            audioSources[0].Play();
        }
        else if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            spriteX.sortingOrder = 0;
            spriteZ.sortingOrder = 2;
            backSpriteX.enabled  = false;
            backSpriteZ.enabled  = true;
            audioSources[0].Play();
        }
        // 결정 키가 눌린 경우입니다.
        else if (Input.GetKeyDown(KeyCode.Return))
        {
            // 엑스 선택
            if (backSpriteX.enabled)
            {
                loadingLevelName = "X_introCutscene";
            }
            // 제로 선택
            else
            {
                loadingLevelName = "Z_introCutscene";
            }
            audioSources[1].Play();
            fader.FadeOut(); // fader.RequestSceneEnd();
            fadeOutRequested = true;
        }
    }
Beispiel #4
0
    /// <summary>
    /// 스크립트에 따라 액션을 수행하는 코루틴입니다.
    /// </summary>
    /// <returns>DoNextScript() 함수 호출의 결과입니다.</returns>
    IEnumerator ActWithCoroutine()
    {
        string[] action  = _actionScriptList[_actionScriptIndex++];
        string   command = action[0];

        int     index;
        float   _time;
        float   fadeSpeed;
        string  levelName;
        Vector2 position;

        // 명령에 따라 액션을 수행합니다.
        switch (command)
        {
        // 일정 시간동안 대기합니다.
        case "WaitForSeconds":
            _time = float.Parse(action[1]);
            yield return(new WaitForSeconds(_time));

            break;

        // 레벨을 불러옵니다.
        case "Load":
            levelName = action[1];
            LoadingSceneManager.LoadLevel(levelName);
            break;

        // 이미지를 슬라이드합니다.
        case "SlideImage":
            index    = int.Parse(action[1]);
            _time    = float.Parse(action[2]);
            position = new Vector2(float.Parse(action[3]), float.Parse(action[4]));
            {
                SpriteRenderer image       = _cutsceneImages[index];
                Rigidbody2D    image_rbody = image.GetComponent <Rigidbody2D>();
                Vector2        diff        = position - new Vector2(image.transform.position.x, image.transform.position.y);
                image_rbody.velocity = diff / _time;
                yield return(new WaitForSeconds(_time));

                image_rbody.velocity = Vector2.zero;
            }
            break;

        // 이미지를 화면에 표시합니다.
        case "EnableImage":
            index = int.Parse(action[1]);
            _cutsceneImages[index].enabled = true;
            break;

        // 화면에 표시한 이미지를 disable합니다.
        case "DisableImage":
            index = int.Parse(action[1]);
            _cutsceneImages[index].enabled = false;
            break;

        // 장면에 페이드인 효과를 부여합니다.
        case "SceneFadeIn":
            fadeSpeed = float.Parse(action[1]);
            _fader.FadeIn(fadeSpeed);
            break;

        // 장면에 페이드아웃 효과를 부여합니다.
        case "SceneFadeOut":
            fadeSpeed = float.Parse(action[1]);
            _fader.FadeOut(fadeSpeed);
            break;

        // 배경 음악을 재생합니다.
        case "PlayMusic":
            index = int.Parse(action[1]);
            if (action.Length > 2)
            {
                _bgmSource.volume = float.Parse(action[2]);
            }
            else
            {
                _bgmSource.volume = 1;
            }

            _bgmSource.clip = _audioSources[index].clip;
            _bgmSource.Play();
            break;

        // 음악 재생을 중지합니다.
        case "StopMusic":
            _bgmSource.Stop();
            break;

        // 효과음을 재생합니다.
        case "PlaySound":
            index = int.Parse(action[1]);
            _time = float.Parse(action[2]);
            _audioSources[index].Play();
            yield return(new WaitForSeconds(_time));

            break;

        //
        case "FadeOutMusic":
            while (_bgmSource.volume > 0)
            {
                _bgmSource.volume -= Time.deltaTime;
                yield return(new WaitForSeconds(0.5f));
            }
            break;
        }

        // 액션 수행이 모두 종료되었으므로 스위치를 닫습니다.
        _actionScriptPlaying = false;

        /**
         * // CHECK: 문제가 발생할 때 이 부분을 먼저 확인하세요.
         * // 원래는 이런 구문이 없었습니다.
         * {
         *  StopCoroutine(_actionScriptCoroutine);
         *  _actionScriptCoroutine = null;
         * }
         */

        // 다음 스크립트를 수행합니다.
        DoNextScript();
    }
Beispiel #5
0
 /// <summary>
 /// 메인 메뉴로 복귀합니다.
 /// </summary>
 public void BackToMainMenu()
 {
     LoadingSceneManager.LoadLevel("Title");
 }
Beispiel #6
0
    /// <summary>
    /// 프레임이 갱신될 때 MonoBehaviour 개체 정보를 업데이트 합니다.
    /// </summary>
    void Update()
    {
        // 장면 전환 요청을 확인한 경우의 처리입니다.
        if (_changeSceneRequested)
        {
            if (fader.FadeOutEnded)
            {
                LoadingSceneManager.LoadLevel(_nextLevelName);
            }
            return;
        }

        // 키 입력에 대한 처리입니다.
        if (HDInput.IsAnyKeyDown())
        {
            if (Input.anyKeyDown)
            {
                if (HDInput.IsUpKeyDown()) // (HDInput.IsUpKeyPressed()) // (Input.GetKeyDown(KeyCode.UpArrow))
                {
                    if (0 < _menuIndex)
                    {
                        ChangeMenuItem(_menuIndex - 1);
                    }
                }
                else if (HDInput.IsDownKeyDown()) // (HDInput.IsDownKeyPressed()) // (Input.GetKeyDown(KeyCode.DownArrow))
                {
                    if (_menuIndex < menuItems.Length - 1)
                    {
                        ChangeMenuItem(_menuIndex + 1);
                    }
                }
                else if (IsSelectKeyPressed())
                {
                    switch (_menuIndex)
                    {
                    case 0:
                        _nextLevelName        = "CS00_PreviousStory";
                        _changeSceneRequested = true;
                        fader.FadeOut(1);
                        break;

                    case 1:
                        _nextLevelName        = "01_Intro_X";
                        _changeSceneRequested = true;
                        fader.FadeOut(1);
                        break;

                    case 2:
                        _nextLevelName        = "01_Intro_Z";
                        _changeSceneRequested = true;
                        fader.FadeOut(1);
                        break;

                    case 3:
                        _nextLevelName        = "01_Intro_2p";
                        _changeSceneRequested = true;
                        fader.FadeOut(1);
                        break;

                    case 4:
                        Application.Quit();
                        break;

                    default:
                        _nextLevelName = null;
                        break;
                    }
                    _seSources[1].Play();
                }
            }
            else
            {
                if (HDInput.IsUpKeyPressed()) // (Input.GetKeyDown(KeyCode.UpArrow))
                {
                    if (0 < _menuIndex)
                    {
                        ChangeMenuItem(_menuIndex - 1);
                    }
                }
                else if (HDInput.IsDownKeyPressed()) // (Input.GetKeyDown(KeyCode.DownArrow))
                {
                    if (_menuIndex < menuItems.Length - 1)
                    {
                        ChangeMenuItem(_menuIndex + 1);
                    }
                }
                else if (IsSelectKeyPressed())
                {
                    switch (_menuIndex)
                    {
                    case 0:
                        _nextLevelName        = "CS00_PreviousStory";
                        _changeSceneRequested = true;
                        fader.FadeOut(1);
                        break;

                    case 1:
                        _nextLevelName        = "01_Intro_X";
                        _changeSceneRequested = true;
                        fader.FadeOut(1);
                        break;

                    case 2:
                        _nextLevelName        = "01_Intro_Z";
                        _changeSceneRequested = true;
                        fader.FadeOut(1);
                        break;

                    case 3:
                        _nextLevelName        = "01_Intro_2p";
                        _changeSceneRequested = true;
                        fader.FadeOut(1);
                        break;

                    case 4:
                        Application.Quit();
                        break;

                    default:
                        _nextLevelName = null;
                        break;
                    }
                    _seSources[1].Play();
                }
            }
        }
    }
    /// <summary>
    /// 프레임이 갱신될 때 MonoBehaviour 개체 정보를 업데이트 합니다.
    /// </summary>
    void Update()
    {
        // 게임 데이터를 불러오는 중이라면 로딩만 수행합니다.
        if (_loading)
        {
            if (_fader.FadeOutEnded)
            {
                LoadingSceneManager.LoadLevel("StageSelect");
            }
            return;
        }


        // 아무 키나 눌린 경우
        if (Input.anyKeyDown)
        {
            // 테스트 함수를 호출합니다.
            {
                if (Input.GetKeyDown(KeyCode.A))
                {
                    AddSaveData(_saveDataIndex);
                    return;
                }
                else if (Input.GetKeyDown(KeyCode.D))
                {
                    DeleteSaveData(_saveDataIndex);
                    return;
                }
                else if (Input.GetKeyDown(KeyCode.S))
                {
                    PreserveSaveData();
                    return;
                }
                else if (Input.GetKeyDown(KeyCode.F))
                {
                    DeletePlayerPrefsSaveData();
                    return;
                }
            }

            //
            if (Input.GetButtonDown("Attack"))
            {
                Load();
                return;
            }
            else if (Input.GetButtonDown("Jump"))
            {
                return;
            }
            else if (Input.GetButtonDown("Dash"))
            {
                LoadingSceneManager.LoadLevel("Title");
                return;
            }


            //
            if (Input.GetKeyDown(KeyCode.UpArrow))
            {
                ChangeSaveItem(_saveDataIndex - 1);
            }
            else if (Input.GetKeyDown(KeyCode.DownArrow))
            {
                ChangeSaveItem(_saveDataIndex + 1);
            }
        }
    }