我有一个游戏模板,该模板有两个等级。 游戏中有玩家,敌人,宝藏和墙壁。 当我运行该程序时,它将成功加载级别1。我已经设计了代码,因此如果满足特定条件,则必须加载Level 2。现在,第2级加载。但是,第1级的某些元素仍保留在屏幕上,而忽略了第2级的某些元素。 确切地说: 从级别2开始,它将加载玩家的初始坐标,宝箱和最终目的地,而忽略敌人和墙壁。 从1级到2级:墙壁,宝藏和敌人。后两个处于冻结状态。它们不起作用。
//实例变量:
private int lvlCount = 1;
// Game()方法
public Game(Stage stage) {
this.score = new SimpleIntegerProperty(0);
this.mobs = new ArrayList<>();
this.hitBoxes = new ArrayList<>();
this.treasure = new ArrayList<>();
this.newLevel = new ArrayList<>();
this.enemyCount = 0;
bg();
loadLevel(1);
living();
stuff();
mob2();
finalText();
stage.setOnShown(e -> this.run());
}
//用于加载级别的开关:
void loadLevel(int in) {
switch (in) {
case 1:
this.level = new Level1();
break;
case 2:
this.level = new Level2(); // placeholder for second level
break;
}
//碰撞检查:
private void collisionCheck() {if (r.getFill().equals(Color.WHITE)){lvlCount--;}
//主游戏循环方法:
private void play() {
AnimationTimer gameLoop = new AnimationTimer() {
public void handle(long arg0) {
for (int i = 0; i < mobs.size(); i++) {
MOB m = mobs.get(i);
if (m instanceof Enemy) {
((Enemy) m).moveCheck(arg0);
}
}
collisionCheck();
if (lvlCount == 0){
loadLevel(2);} //The condition that loads Level 2
gameLoop.start();
}
请帮助我弄清楚如何成功加载Level 2。 请注意,它不会在控制台中产生任何错误。因此,我很难弄清楚问题出在哪里。
我只粘贴了我认为达到目标所必需的代码。这是完整的代码:https://www70.zippyshare.com/v/6uDa0nTT/file.html
非常感谢您。