0

我正在制作一个小游戏,我需要更多帮助。我想这样做,如果 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 高)。

如何在另一个对象前面绘制矩形,或者有更好的方法吗?白屏的目的是充当“残局屏幕”,您可以在其中选择是否要再次执行此操作,或者进入下一个级别。执行此代码时没有错误。

4

2 回答 2

1

这就是 GlassPane 的用途。

JComponent glass = myframe.getGlassPane();
glass.setOpaque(true);
glass.setBackground(Color.WHITE);
glass.setVisible(true);
于 2011-04-11T19:13:44.230 回答
0

在您展示的代码中,您只是绘制到一些缓冲区中,而没有指定它来自哪里以及去往哪里。

一般来说,您应该覆盖paint方法,如果您在其他所有内容之后绘制一个白色矩形,它看起来就像在其他所有内容之上。

于 2011-04-11T19:17:07.147 回答