void SwitchNextPoint() { int currentPointIndex = (int)m_currentBird.m_nextPoint; int lastPointIndex = (int)m_currentBird.m_LastPoint; int NextPointIndex = currentPointIndex + m_birdWalkingDirection; if (NextPointIndex == Enum.GetNames(typeof(RooMBirdPoints)).Length) { m_currentBird.m_currentBirdState = Bird.BirdState.Finished_Idle; m_currentBird.SetPosition(m_roomManager.m_birdFinishPoints[m_currentBird.m_id].position); m_currentBird.PlayIdleAnimation(); m_gameManager.BirdReachedTargetPosition(m_currentBird); return; } if (NextPointIndex < 0) { NextPointIndex = 3; } RooMBirdPoints lastPoint = m_currentBird.m_nextPoint; m_currentBird.m_nextPoint = (RooMBirdPoints)NextPointIndex; m_currentBird.m_LastPoint = lastPoint; Vector3 toPosition = m_roomManager.m_birdMovePoints [(int)m_currentBird.m_nextPoint].position; Vector3 fromPosition = m_roomManager.m_birdMovePoints [(int)m_currentBird.m_LastPoint].position; SwitchBirdAnimation(toPosition, fromPosition); }
void MoveBird(RooMBirdPoints nextPoint) { Vector3 toPosition = m_roomManager.m_birdMovePoints [(int)nextPoint].position; float step = m_birdSpeed * Time.deltaTime; Vector3 birdNexPositons = Vector3.MoveTowards(m_currentBird.CurrentPosition, toPosition, step); m_currentBird.SetPosition(birdNexPositons); float m_distanceToNextPoint = Vector3.Distance(m_currentBird.CurrentPosition, toPosition); bool reachedNextPoint = MathUtility.IsAproximately(0.0f, m_distanceToNextPoint, 0.2f); if (reachedNextPoint) { if (m_currentBird.m_nextPoint == RooMBirdPoints.F_PointD) { //m_currentBird.m_currentStage = RoomManager.RoomStages.Ladder; if (m_currentBird.m_LastPoint == RooMBirdPoints.F_PointA) { m_birdWalkingDirection *= -1; } } SwitchNextPoint(); } }
void SwitchBirdDirection() { RooMBirdPoints lastPoint = m_currentBird.m_nextPoint; m_currentBird.m_nextPoint = m_currentBird.m_LastPoint; m_currentBird.m_LastPoint = lastPoint; m_birdWalkingDirection *= -1; Vector3 toPosition = m_roomManager.m_birdMovePoints [(int)m_currentBird.m_nextPoint].position; Vector3 fromPosition = m_roomManager.m_birdMovePoints [(int)m_currentBird.m_LastPoint].position; SwitchBirdAnimation(toPosition, fromPosition); }