四、创建界面

来源:互联网 发布:新疆移动4g网络什么时候开通 编辑:程序博客网 时间:2024/06/06 02:45

         续接上一节内容,我们截止到目前为止已经实现了输入监听、界面管理等内容,也就是说整个游戏的骨架已经构建完毕,接下来这节我们将创建各个游戏状态界面,同时为各个界面做上控制台打印标记,来测试一下我们游戏的整个控制管理流程。

        首先创建类PlayState类同时让他继承自GameState然后实现内部各个方法结果如下:

public class PlayState extends GameState{protected PlayState(GameStateManager gsm) {super(gsm);}@Overridepublic void init() {}@Overridepublic void update(float dt) {}@Overridepublic void draw() {}@Overridepublic void handleInput() {}@Overridepublic void dispose() {}}

然后依次创建出MenuStateHighScoreStateGameOverState几个类同上继承自GameState,并将其方法一并实现。各个方法内添加控制台打印参数,然后再打开GameStateManager类在setState方法内将各个gamestate参数实例化如下:

public void setState(int state){if(gamestate!=null)gamestate.dispose();//每次跳转页面时都会调用上一个界面内的dispose方法进行内存释放if(state==MENU){gamestate=new MenuState(this);}if(state==PLAY){gamestate=new PlayState(this);}if(state==HIGHSCORE){gamestate=new HighScoreState(this);}if(state==GAMEOVER){gamestate=new GameOverState(this);}}

这样我们就实现了闭环的一个流程控制,现在缺少的是条件判断(输入条件、游戏结束条件、游戏开始条件等)来促使各个界面进行跳转,然而现在我们可以通过在GameStateManager类中构造函数内设置setState(PLAY/MENU/HIGHSCORE/GAMEOVER)值来选择游戏进入哪个界面,这样就可以测试一下我们各个界面是否能够正常进入,是否能够将您所添加的控制台打印参数打印出来。我测试的效果如下图所示:


0 0