我正在制造一个"打击鼹鼠" Java中的游戏。在我的游戏面板类中,我有一系列的孔(可以设置为摩尔)。孔是一个单独的对象(有一个Hole类)。每个Hole对象都是一个直径为100 px的圆。图形表示是一个圆圈(fillOval
),并使用了size=100
。
我可以为Hole对象实现MouseListener
接口吗?是否可以,因为Hole不会延伸JComponent
,例如JPanel
?是否可以将鼠标监听器的范围指定到特定区域?例如,我只想计算圆形区域内的点击次数,而不是围绕圆孔区域的广场内的点击次数。
(目前我的代码并没有比我作为程序结构所解释的更多。)
答案 0 :(得分:1)
将MouseListener
添加到父组件。让每个Hole
对象提供一个接受Point
个对象的方法。返回true
/ false
表示该点是否位于Hole
所绘制的区域内。当用户单击面板时,它应该包含代码,这些代码将迭代Hole
对象依次检查每个对象。
图形表示是一个圆圈(
fillOval
),并使用了size=100
。
我将其升级为使用Ellipse2D
。由于椭圆实现了Shape
,因此它继承了contains(Point2D)
方法。