0
/**
 * All the states in the game.
 */
public enum State {
    START_MENU,
    PLAYER_ONE_MENU,
    PLAYER_ONE_CATEGORY,
    PLAYER_TWO_MENU,
    PLAYER_TWO_CATEGORY,
    WIN_SCREEN,
    LOSE_SCREEN,
    PLAY_SCREEN
}

那是我为我正在设计的刽子手游戏制作的枚举。但是我是枚举的新手,但有人建议我将枚举用于游戏状态。但是我不知道如何跟踪播放器当前处于哪个状态。有人可以解释一种跟踪选择哪个状态的方法吗?

4

3 回答 3

1

根据Enum 的 Java Doc

valueOf(类枚举类型,字符串名称)

返回具有指定名称的指定枚举类型的枚举常量。

于 2013-03-08T05:29:41.853 回答
1

只需保留States当前状态的类型变量即可。

class Player {

 States currentState=States.STARTMENU;

 void doSomething() {
  switch (currentState) {
   case STARTMENU:...;
   case PLAYERONEMENU:...;
   //etc
  }
 }

 void playMenu() {
  if (currentState==States.PLAYMENU) {...}
 }
}
于 2013-03-08T05:30:45.603 回答
1

使用具有枚举类型的变量,例如:

State var;
var = State.PLAYER_TWO_MENU;
于 2013-03-08T05:31:06.500 回答