2017-10-06 60 views
0

在我的遊戲中,播放器有兩個主要狀態:STATIC和MOVING。如何在播放器的狀態枚舉中添加子狀態 - LibGdx

我想添加兩個狀態作爲靜態狀態的子狀態,如向上和向下。

public enum PlayerState { 

    STATIC,MOVING; 

    public boolean isMoving() { 
     return this == MOVING; 
    } 
    public boolean isStatic() { 
     return this == STATIC; 

    } 

}

我怎樣才能在枚舉和訪問它添加此子狀態?

現在我訪問它的播放器類爲

private NestState state = NestState.STATIC; 

public void moving() { 
    state = NestState.MOVING; 

} 

public void staticState() { 
    state = NestState.STATIC; 

} 

public boolean isStatic() { 

    return state.isStatic(); 
} 

public boolean isMoving() { 

    return state.isMoving(); 
} 

回答

2

我可以看到2個簡單的解決辦法,讓你有狀態和子狀態。首先是擴大目前的狀態。

public enum PlayerState { 

    STATIC_STILL, STATIC_UP, STATIC_DOWN, MOVING_LEFT, MOVING_RIGHT; 

    public boolean isMoving() { 
     if(this == MOVING_LEFT || 
       this == MOVING_LEFT){ 
      return true; 
     } 
     return false; 
    } 
    public boolean isStatic() { 
     if(this == STATIC_STILL || 
       this == STATIC_UP || 
       this = STATIC_DOWN){ 
      return true; 
     } 
     return false; 
    } 

} 

第二個選擇是創建第二組的狀態,從這個

public enum PlayerSubState { 
    UP,DOWN,LEFT,RIGHT; 
} 

而且您的播放器將分離既有PlayerState和PlayerSubState。