游戏的基本思想是收集一个房间里的所有物品,以便进行下一个。我知道不是很原始...当所有物品都收集完毕后,将显示一个屏幕显示“关卡完成”,然后几秒钟后将重新加载下一个关卡。我遇到的问题是,当我降落在最后一件物品上时,检查“是否已收集所有物品?” 规则满足游戏突然卡住,井居然开始晃动。玩家精灵和物品一样被冻结在原地,无法再与游戏进行交互。我只能假设游戏被困在 render() 方法中并且没有逃逸,或者再次满足相同的条件。
有没有人对如何正确地跳出主 render() 方法以遍历新屏幕有任何想法?
在我的主要渲染()方法中,我调用了另一个检查游戏状态的方法,即所有物品都收集在房间里......
render() {
... code ...
checkGameState()
}
然后 checkGameState() 如下所示:
public void checkGameState()
{
//If the player has collected all of the items on a level then do something
//if(stats.getItemsCollected() == stats.getTotalItems()) {
//reset some stuff
stats.resetItems();
stats.incLevel();
//show the intermediate screen or menu screen
//load the next level
showLevelCompleteScreen();
//
}
}
ShowLevelCompleteScreen() 方法只是尝试如下切换屏幕:
public void showLevelComplete()
{
game.setScreen(SuperBlockMan.LevelComplete);
}