IEnumerator FeverTime() { while (true) { if (!m_isPause) { if (m_is_FeverTime_On) // 피버타임이 켜졌을 때 { if (m_Elapsed_FeverTime > 0.0f) // 피버타임 시간이 남았다면 { m_Elapsed_FeverTime -= Time.deltaTime; // 시간 감소. } else // 피버타임 시간이 다 됐다면 { SlowDown_Start(); // 감속 시작. } } else // 피버타임이 꺼졌을 때 { if (m_Curr_FeverTime_Point >= m_FeverTime_Max_Point) // 포인트가 충분히 모였다면 { m_is_FeverTime_On = true; // 피버타임 시작. MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.FEVER); // 맵 스크롤 속도 5배 상승. MapScroll.GetInstance().Map_Change_Fever(); // 맵을 피버타임 모드로 변경. Enemy_All_Kill(); // 맵에 존재하는 적 객체를 전부 처치한다. Player.GetInstance().Invincibility_Change(); // 무적 활성화. Player.GetInstance().Attack_Off(); // 공격 중지. } } } yield return(null); } }
void Awake() { m_Instance = this; Set_Speed(MapScroll.GetInstance().Get_Lane_Speed()); m_DistanceChecker_Coroutine = Distance_Check(); StartCoroutine(m_DistanceChecker_Coroutine); }
IEnumerator SlowDown() { while (true) { if (m_SlowDown_Time >= 1.0f) { m_is_FeverTime_On = false; // 피버타임 종료. Player.GetInstance().Invincibility_Change(); // 무적 비활성화. MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.NORMAL); // 맵스크롤 속도 초기화. MapScroll.GetInstance().Map_Change_Normal(); // 맵을 노말 모드로 변경. m_Elapsed_FeverTime = m_FeverTime_Duration; // 시간 초기화. m_Curr_FeverTime_Point = 0; // 포인트 초기화. m_SlowDown_Time = 0.0f; // 감속 시간 초기화. Distance_Checker.GetInstance().Reset_Distance_For_Fever_Point(); // 피버타임용 거리 측정기 초기화. Player.GetInstance().Attack_On(); // 공격 재시작. StopCoroutine(m_SlowDown); // 감속 종료 StartCoroutine(m_FeverTime); // 피버타임 검사 재시작. } else if (m_SlowDown_Time >= 0.75f) { MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.SLOWDOWN_X2); // 이동속도 초기화. } else if (m_SlowDown_Time >= 0.5f) { MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.SLOWDOWN_X3); // 이동속도 초기화. } else if (m_SlowDown_Time >= 0.25f) { MapScroll.GetInstance().Change_Speed(FEVER_TIME_SPEED.SLOWDOWN_X4); // 이동속도 초기화. m_Fade_Object.GetComponent <Fade_Manager>().Fade_In(); // 페이드 인 실행. } m_SlowDown_Time += Time.deltaTime; yield return(null); } }
// ================================= protected virtual void Move() { transform.Translate(new Vector3(-m_Move_Speed * MapScroll.GetInstance().Get_Main_Speed() * Time.deltaTime, 0.0f, 0.0f)); m_Animations.Play(m_Animations.GetClip("O_AND_I_Floating").name); }