예제 #1
0
 private void OnGoToNextStage()
 {
     if (elapsedStage > 1)
     {
         SumStageScore();
     }
     currentBehaviourState = Character.BehaviourState.IDLE;
 }
예제 #2
0
 //Initialize Methods of Class
 private void Init()
 {
     prefab_inputArea = Resources.Load("Prefabs/InputArea") as GameObject;
     uiRoot           = GameObject.Find("UI Root").transform;
     inputArea        = Instantiate(prefab_inputArea, uiRoot);
     inputBtn         = inputArea.transform.GetChild(0).gameObject;
     inputArea.SetActive(false);
     currentState = Character.BehaviourState.INIT;
     rb2D         = gameObject.GetComponent <Rigidbody2D>();
     playerInf    = gameObject.GetComponent <PlayerInf>();
 }
예제 #3
0
 private IEnumerator CheckStage()
 {
     do
     {
         if (currentStage != stageManagement.GetStage())
         {
             currentStage          = stageManagement.GetStage();
             currentBehaviourState = Character.BehaviourState.GO_TO_NEXT_STAGE;
         }
         yield return(null);
     } while (currentState != GameManagement.GameState.GAMEOVER);
 }
예제 #4
0
    private IEnumerator CheckBehaviourState()
    {
        do
        {
            if (previousBehaviourState != currentBehaviourState)
            {
                previousBehaviourState = currentBehaviourState;
                switch (currentBehaviourState)
                {
                case Character.BehaviourState.IDLE:
                    break;

                case Character.BehaviourState.GO_TO_NEXT_STAGE:
                    OnGoToNextStage();
                    break;

                default:
                    break;
                }
            }
            yield return(null);
        } while (true);
    }
예제 #5
0
 private void MovePlayer()
 {
     if (currentGameState == GameManagement.GameState.PLAY &&
         currentState != Character.BehaviourState.INIT && currentState != Character.BehaviourState.DIE && currentState != Character.BehaviourState.FINALIZE)
     {
         if (isFingerPressed)
         {
             rb2D.position += ((inputDir / INPUT_AREA_RADIUS) * Time.deltaTime * moveSpeed) * Time.fixedDeltaTime;
             if (currentState != Character.BehaviourState.DAMAGED)
             {
                 currentState = Character.BehaviourState.MOVE;
                 playerInf.SetCurrentState(currentState);
             }
         }
         else
         {
             if (currentState != Character.BehaviourState.DAMAGED)
             {
                 currentState = Character.BehaviourState.IDLE;
                 playerInf.SetCurrentState(currentState);
             }
         }
     }
 }
예제 #6
0
 //BehaviourState State Machine Callback Methods
 private void OnGoToNextStage()
 {
     enemyCountOfStage += GetEnemyCountOfStage();
     MakeEnemys(enemyCountOfStage, currentStage);
     currentBehaviourState = Character.BehaviourState.IDLE;
 }
예제 #7
0
 public void SetCurrentBehaviourState(Character.BehaviourState state)
 {
     this.currentBehaviourState = state;
 }