<分区>
有人有好的 Java 状态管理器教程吗?在过去的几天里,我一直在研究这个问题,我遇到的任何事情似乎都无法以正确的方式完成我需要它做的事情。我需要它能够接受用户输入,然后从标题状态切换到游戏状态。提前致谢。
<分区>
有人有好的 Java 状态管理器教程吗?在过去的几天里,我一直在研究这个问题,我遇到的任何事情似乎都无法以正确的方式完成我需要它做的事情。我需要它能够接受用户输入,然后从标题状态切换到游戏状态。提前致谢。
最佳答案
我会通过一些行话来为您指明正确的方向:“有限状态机”。对于游戏菜单,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”开始之前添加介绍电影。
关于Java 游戏状态管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949417/