2011-04-11 98 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

相關問題