所以,我做了一个平台游戏。它使用多个级别。
public void switchLevel() {
clearLevel();
cam.setX(0);
try {
BufferedImage currentLevel = loader.loadImage("/level" + String.valueOf(Game.LEVEL + 1) + ".png");
loadImageLevel(currentLevel);
System.out.println("LOADED LEVEL " + (Game.LEVEL+1));
} catch (Exception e) {
System.out.println("LEVEL " + String.valueOf(Game.LEVEL + 1) + " NOT FOUND!");
}
Game.LEVEL++;
}
这是我切换电平的功能。每当必须从3级切换到4级时,它会立即加载另一级。这只发生在第4级。
这是我的控制台输出的一部分
TEST><TRYING TO LOAD LEVEL3
512 512
LOADED LEVEL 3
FPS: 1676 TICKS: 60
FPS: 2089 TICKS: 60
FPS: 2160 TICKS: 60
FPS: 2273 TICKS: 60
FPS: 2323 TICKS: 60
FPS: 2318 TICKS: 60
FPS: 2326 TICKS: 60
<<MORE FPS LOGS>>
TEST><TRYING TO LOAD LEVEL4
512 512
LOADED LEVEL 4
TEST><TRYING TO LOAD LEVEL5
512 512
LOADED LEVEL 5
FPS: 1458 TICKS: 60
FPS: 1364 TICKS: 59
FPS: 1342 TICKS: 61
FPS: 1366 TICKS: 60
我看不出它有什么问题.. 也很抱歉我的英文不好
编辑: 当玩家与Flag对象发生碰撞时,会调用该方法。
这是碰撞方法的一部分:
case Flag: {
if (getBounds().intersects(tempObject.getBounds())) {
handler.switchLevel();
}
break;
}