我正在做一个小型游戏,我想设定失败的条件。如果失败是真的,我希望清除屏幕上的所有图形,以便为屏幕上的某些输出文本让路。

我认为有一种常规方法可以做到这一点(我宁愿知道这种方法,而不必输入不必要的代码)。提前致谢!

到目前为止,这是我的代码:

public void paintComponent(Graphics g){
        if (!defeat){
            super.paintComponent(g);
            square.display(g);
            wall.display(g);
            for (Circle circle: circleArray){

                circle.display(g);
            }

        }else if(defeat){

            g.drawString("You have been defeated", 300, 300);
        }

最佳答案

您应该始终致电super.paintComponent(g);(除非您真的知道自己在做什么)。

将该呼叫放在您的if语句之外。该呼叫就是“清除屏幕”。像这样:

public void paintComponent(Graphics g){
    super.paintComponent(g);
    if (!defeat){
        square.display(g);
        wall.display(g);
        for (Circle circle: circleArray){

            circle.display(g);
        }

    }else if(defeat){

        g.drawString("You have been defeated", 300, 300);
    }

10-05 22:48