当我的角色死亡时,我想要在游戏结束屏幕上点击“重新启动”时删除所有敌人。但重新开始时场上总会留下1-2个敌人,我真的不明白。游戏未正确重置
这是我的复位代码:
public void resetStats() {
for (int i = 0; i < enemies.size(); i++) {
enemies.remove(i);
}
System.out.print("ENEMIES: " + enemies.size());
enemyCounter = 0;
nbrOfEnemiesKilled = 0;
spawnEnemyTimer = 0;
score.setScore(0);
bulletsFired = 0;
nbrOfBullets = 100;
}
当我按我的游戏结束屏幕上的“重启”按钮将调用此方法。除了屏幕上留下的敌人之外,所有东西都可以正确重设。 即时通讯使用游戏状态和游戏只在gameState=GAMEPLAY
期间更新,并且我设置gameState=GAMEOVERSCREEN
当我的角色死亡时,这会调出屏幕。由于我没有在UI线程上运行我的游戏结束画面,所以这一切都发生在我的后台,所以剩下的字符会在这种状态下来回跳动几个像素。
我不知道如何在UI线程上运行我的屏幕,因为我实时调用它从View Class
。
我试过在进入新游戏状态之前删除敌人,但是这并不能解决问题。我迷路了。我应该在UI线程上运行我的屏幕,并在这种状态下支持我的游戏循环吗?我如何从视图类去做这件事,因为我需要Context
在Ui-thread上运行。
如果需要进一步补充,请告诉我。