2011-04-11 64 views
0

我正在制作一个小型游戏,我需要一些更多的帮助。我想这样做是为了让玩家1和玩家2完成后,白色屏幕会在任何物体或绘图前面的整个屏幕上弹出。我现在使用此代码:在任何其他物体/绘图前绘制东西

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高)。

如何在另一个对象前面绘制矩形,还是有更好的方法来做到这一点?白色屏幕的目的是充当“终结屏幕”,您可以选择是否要再次执行此操作,或进入下一关。执行此代码时没有错误。

+1

小记:写(ifFinishedP1 && isFinishedP2)就足够了。它们是布尔语句,如果它们是真的,则它们将为真:) – 2011-04-11 19:07:25

回答

0

在代码中,您展示的只是绘制到某个缓冲区中,而不指定它来自哪里以及它到达哪里。

一般而言,您应该覆盖paint方法,并且如果在所有其他方法之后绘制白色矩形,它将看起来像是在其他所有方面。

+0

我有种解决了我自己的答案,方法是创建一个创建完成画面的方法,然后在P1和P2都完成时执行它。 我还是非常感谢你们的帮助! – Stan 2011-04-11 19:20:27

1

这就是GlassPane的用途。

JComponent glass = myframe.getGlassPane(); 
glass.setOpaque(true); 
glass.setBackground(Color.WHITE); 
glass.setVisible(true); 
+0

+1,这里是Swing教程的链接,它有一个工作示例:http://download.oracle.com/javase/tutorial/uiswing /components/rootpane.html – camickr 2011-04-11 19:30:27

相关问题