2013-03-08 41 views
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 
} 

這是我爲設計的hang子手遊戲而製作的枚舉。不過,我對枚舉是新手,但有人建議我使用枚舉來表示遊戲狀態。但是我不知道如何跟蹤玩家目前的狀態。有人可以解釋一種方法來跟蹤哪個州被選中?保持跟蹤哪個枚舉被選中?

+1

更好的重命名'States'爲'State'在該類的一個變量持有的值只有一個。 – 2013-03-08 05:33:57

+1

順便說一下,使用下劃線來分隔常量中的單詞,並提高可讀性。 – Mordechai 2013-03-08 06:22:09

回答

1

只保留一個類型爲States的變量與當前狀態。

class Player { 

States currentState=States.STARTMENU; 

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

void playMenu() { 
    if (currentState==States.PLAYMENU) {...} 
} 
} 
+1

'States currentState = States.STARTMENU;'。 – 2013-03-08 05:32:37

1

作爲每Java Doc for Enum

的valueOf(類enumType,字符串名稱)

返回指定枚舉類型具有指定名稱的枚舉常量。

1

使用一個變量與枚舉類型,例如:

State var; 
var = State.PLAYER_TWO_MENU;