我有一个 GameScreen 世界(20 个左右的对象),它按预期放置所有对象。然而,当我得到 GameOver 时,我想成为一个空白 Canvas ,只有背景和一些新对象(几个对象),但是 GameScreen 中的所有现有对象都会保留,我不知道如何停止它或在 GameOver 屏幕上删除它们
public class GameScreen extends World
{
public GameScreen()
{
super(600, 400, 1);
prepare();
}
private void prepare()
{
addObjects.......
}
}
public class GameLost extends GameScreen
{
public GameLost()
{
removeObjects(GameScreen);
prepare();
}
private void prepare()
{
addObjects...
}
最佳答案
我很确定您不希望 GameLost 扩展 GameScreen
。
做
class GameLost {
private Background bg;
public void paint() {
paint(bg);
}
}
class GameScreen {
private Background bg;
private List<GameObjects>...
public void paint() {
paint(bg);
gameObjects.forEach(go -> paint(go));
}
}
这样可以轻松地将背景从游戏屏幕移动到游戏结束屏幕,而无需游戏对象。
关于Java删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53634193/