Java 如何在播放器LibGdx的状态枚举中添加子状态

Java 如何在播放器LibGdx的状态枚举中添加子状态,java,libgdx,Java,Libgdx,在我的游戏中,玩家有两种主要状态;静止和移动 我想再添加两个状态作为静态的子状态,比如向上和向下 public enum PlayerState { STATIC,MOVING; public boolean isMoving() { return this == MOVING; } public boolean isStatic() { return this == STATIC; } } 如何在枚举中添加此子状态

在我的游戏中,玩家有两种主要状态;静止和移动

我想再添加两个状态作为静态的子状态,比如向上和向下

public enum PlayerState {

    STATIC,MOVING;

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

    }
}

如何在枚举中添加此子状态并访问它

现在我在player类中访问它

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();
}

我可以看到两个简单的解决方案,可以让你有状态和子状态。第一个是扩大你目前拥有的州

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。

我可以看到两个简单的解决方案,它们允许您具有状态和子状态。第一个是扩大你目前拥有的州

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