我正在制作一个小游戏,我需要更多的帮助。我想这样做,以便如果Player1和Player2完成,将在任何对象或绘图前面的整个屏幕上弹出一个白色屏幕。我现在正在使用它作为代码:
if( isFinishedP1 == true && isFinishedP2 == true ){
Graphics2D b = buffer.createGraphics();
System.out.println("Both are finished, drawing WhiteScreen!");
b.setColor( Color.WHITE );
b.fillRect(0, 0, 800, 600);
b.dispose();
}
我的控制台说它们都已完成,但它不会绘制白屏。我没有看到任何东西,我怀疑它是在后面绘制背景和物体。我将白色屏幕(实际上是一个矩形)放在(0,0)(分别为x和y坐标),我的窗口是800x600(宽x高)。
如何在另一个对象前面绘制矩形,还是有更好的方法来做到这一点?白屏的目的是充当“终局屏幕”,您可以选择是否要再次执行,或者进入下一级别。执行此代码时没有错误。
答案 0 :(得分:1)
这就是GlassPane的用途。
JComponent glass = myframe.getGlassPane();
glass.setOpaque(true);
glass.setBackground(Color.WHITE);
glass.setVisible(true);
答案 1 :(得分:0)
在您展示的代码中,您只需绘制一些缓冲区,而不指定它来自哪里以及它去往何处。
一般来说,你应该覆盖paint方法,如果你在其他所有东西之后绘制一个白色矩形,它看起来就像是在其他所有东西上面。