如何在播放器的状态枚举中添加子状态 - LibGdx
问题描述:
在我的游戏中,播放器有两个主要状态: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个简单的解决办法,让你有状态和子状态。首先是扩大目前的状态。
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。