首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java游戏状态管理

Java游戏状态管理
EN

Stack Overflow用户
提问于 2012-01-21 07:57:38
回答 2查看 11.3K关注 0票数 1

有没有人有好的Java状态管理器教程?在过去的几天里,我一直在研究这个问题,我遇到的任何事情似乎都不能以正确的方式工作,无法满足我的需求。我需要它能够接受用户输入,然后从标题状态切换到游戏状态。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-21 08:39:44

我将通过给你一些需要寻找的行话来指引你正确的方向:“有限状态机”。对于游戏菜单,FSM应该足够了。现在你知道了这个时髦的词,你应该能够通过谷歌找出一大堆的例子。虽然基本思想非常简单,但有大量不同的实现。只需记住,这种用于游戏状态转换的系统并不需要那么极端。

我个人见过各种各样的东西,从过度设计的多维状态转换到巨大的千行switch语句。

对于没有流或疯狂游戏中断的基本游戏,您可能应该寻找一种不比以下更复杂的面向对象方法:

代码语言:javascript
复制
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“开始之前添加一些过渡状态,比如弹出和弹出暂停菜单,或者是介绍电影。

票数 6
EN

Stack Overflow用户

发布于 2012-01-21 11:18:23

枚举是使用状态的方式。看看这个:http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8949417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档