如何在不同分辨率的同一个地方放置鼠标位置

时间:2015-04-25 20:33:53

标签: java coordinates screen-resolution java-2d mouselistener

我为大学开发了Monopoly Clone游戏(玻利维亚垄断)。 我将垄断板放入Jpanel并尝试使用e.getX()将鼠标位置精确地置于鼠标侦听器事件中。问题是我的游戏支持分辨率800x600,1024x768,1680x1050的抢劫....当我有机会屏幕分辨率时,我如何获得相同的位置点击? enter image description here

2 个答案:

答案 0 :(得分:0)

最好的方法是不使用像素坐标,而是使用百分比坐标。

在屏幕截图中,您的电路板有一个顶部偏移和一个左偏移,以及宽度和高度。

对于当前鼠标x位置,减去左偏移并除以游戏板的宽度。您将得到的x值为:

小于0:鼠标留在板上 介于0和1之间:板上的相对位置(0表示左侧,1表示完全位于右侧) 大于一:鼠标位置是正确的。

同样适用于y位置。

如果您根据这些相对值执行所有裁剪计算,则所有内容都应该依赖于依赖项。

答案 1 :(得分:0)

在我看来,你应该将每张照片放在不同的JPanel上。您可以使用JLabel添加图片。这样,您可以为每张图片添加侦听器。它将支持任何屏幕重新生成,因为它遵循Layout Manager。此外,它将帮助您逻辑地组织代码。