删除fillRect矩形

时间:2013-07-22 00:42:28

标签: java graphics jframe 2d

我正在尝试制作一个简单的游戏,随机大小和颜色的正方形出现在屏幕上的随机位置,你必须点击它们。点击次数越高,得分越高。

我有一切工作,除了,我不知道如何制作它,以便当你点击一个正方形时它会消失。

这是我的矩形代码

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

位置,大小和颜色已经预先确定,并在另一个类文件中随机选择。

3 个答案:

答案 0 :(得分:2)

建议:

  • 不要硬编码您正在绘制的矩形。
  • 而是创建一个矩形集合,例如ArrayList<Rectangle>,它们在绘图JPanel的paintComponent(...)方法中以for循环绘制。
  • 然后,当用户单击它们时,将它们从ArrayList中删除。
  • 这将在MouseListener中完成,并再次使用for循环
  • 但关键是这个循环向后迭代。原因是所有其他的“顶部”上的矩形是最后绘制的。如果点击它们,它们应该是第一个删除的。
  • 删除矩形后,您可以在绘图JPanel(或JComponent)上调用repaint()

答案 1 :(得分:2)

  

我正在尝试制作一个简单的游戏,随机大小和颜色的正方形出现在屏幕上的随机位置,你必须点击它们

您也可以使用Swing组件。有关更多提示,请参阅Playing With Shapes。您可以将MouseListener添加到每个组件,只需单击它就可以从面板中删除该组件。

即使你不想使用组件,你仍然应该考虑使用一个Shape,这样你的游戏可以拥有比矩形更多的形状。在这种情况下,韦特洛克的建议都适用。

答案 2 :(得分:1)

您需要保留某种缓存,告诉您这些矩形的位置。

您应该使用此缓存不仅可以检测它们何时被单击,还可以检测它们。

请查看How to create a Mouse Listener了解详情。

您还可以找到一些使用的Rectangle