2013-07-22 101 views
-1

我試圖做一個簡單的遊戲,將隨機大小和顏色的正方形出現在屏幕上的隨機位置,你必須點擊它們。你點擊得越多,分數越高。刪除fillRect矩形

我有一切工作,但我不知道如何使它,使得當你點擊一個正方形它消失。

這是我的矩形代碼

g.fillRect(Cube.cubePosX, Cube.cubePosY, Cube.cubeSize, Cube.cubeSize); 

的位置,大小和顏色已經預定,並且在另一個類文件隨機選擇的。

回答

2

建議:

  • 不要硬代碼,您正在繪製矩形。
  • 取而代之的是創建一個矩形集合,例如ArrayList<Rectangle>,它們繪製在JPanel的paintComponent(...)方法的for循環中。
  • 然後,當用戶點擊它們時,將它們從ArrayList中移除。
  • 這將在MouseListener中完成,並再次使用for循環,但是關鍵在於此循環向後迭代。這是因爲所有其他的「頂部」的矩形都是最後繪製的矩形。他們應該是第一個被刪除的點擊。
  • 刪除Rectangle後,您將在圖形JPanel(或JComponent)上調用repaint()
+1

+1打我跳拳 – MadProgrammer

+0

@MadProgrammer:感謝和1+回給你! –

+0

用於詳細說明步驟的步驟 – camickr

1

你需要保留某種緩存,告訴你這些矩形在哪裏。

您應該使用此緩存不僅檢測它們被點擊時,而且要繪製它們。

查看How to create a Mouse Listener瞭解更多詳情。

你讓也發現一些使用

2

我試圖做一個簡單的遊戲,將具有任意大小和顏色的方塊出現在屏幕上的任意位置的Rectangle,你必須點擊它們

您也可以爲此使用Swing組件。有關更多建議,請參閱Playing With Shapes。您將爲每個組件添加一個MouseListener,並且您可以在單擊時從面板中刪除該組件。

即使您不想使用組件,您仍然應該考慮使用Shape,以便您的遊戲可以具有比矩形更多的形狀。在這種情況下,Yetcraft的建議將全部適用。