有没有人有好的Java状态管理器教程?在过去的几天里,我一直在研究这个问题,我遇到的任何事情似乎都不能以正确的方式工作,无法满足我的需求。我需要它能够接受用户输入,然后从标题状态切换到游戏状态。提前谢谢。
发布于 2012-01-21 08:39:44
我将通过给你一些需要寻找的行话来指引你正确的方向:“有限状态机”。对于游戏菜单,FSM应该足够了。现在你知道了这个时髦的词,你应该能够通过谷歌找出一大堆的例子。虽然基本思想非常简单,但有大量不同的实现。只需记住,这种用于游戏状态转换的系统并不需要那么极端。
我个人见过各种各样的东西,从过度设计的多维状态转换到巨大的千行switch语句。
对于没有流或疯狂游戏中断的基本游戏,您可能应该寻找一种不比以下更复杂的面向对象方法:
public enum GameState {
TITLE_STATE = 0,
MAINGAME_STATE,
PAUSE_STATE,
}
void GameStateUpdate() {
// handle update
switch(m_curState) {
case TITLE_STATE:
UpdateTitleScreen();
if(UserPressesEnter()) {
m_curState = MAINGAME_STATE;
}
break;
case MAINGAME_STATE:
UpdateMainGame();
if(UserPressesPause()) {
m_curState = PAUSE_STATE;
}
break;
case PAUSE_STATE:
UpdatePause();
if(UserDoneWithPause()) {
m_curState = MAINGAME_STATE;
}
break;
}
}从这样做开始,看看你是否可以在"MAINGAME_STATE“开始之前添加一些过渡状态,比如弹出和弹出暂停菜单,或者是介绍电影。
发布于 2012-01-21 11:18:23
枚举是使用状态的方式。看看这个:http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
https://stackoverflow.com/questions/8949417
复制相似问题