清除屏幕 Java 中的所有图形



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

我假设有一种传统的方法来做到这一点(我宁愿知道,也不必输入不必要的代码)。提前感谢!

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

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);
    }

>"I want all the graphics on the screen to be cleared so I can make way for some output text on the screen" ,但你也希望每一帧都清除屏幕,所以你基本上需要始终清除它,这意味着你应该把super.paintComponent(g);放在任何 if 语句之外。
我推荐这段代码:(我已经清理了它并将框架移开了)

public void paintComponent(Graphics g){
    super.paintComponent(g);
    if (defeat){
        g.drawString("You have been defeated", 300, 300);
    } else {
        square.display(g);
        wall.display(g);
        for (Circle circle: circleArray)
            circle.display(g);
    }
}

我还建议将变量defeat更改为defeated,并为 Graphics 对象指定一个更好的名称,就像我使用 canvas 一样。

相关内容

  • 没有找到相关文章

最新更新