我为大学开发了Monopoly Clone游戏(玻利维亚垄断)。 我将垄断板放入Jpanel并尝试使用e.getX()将鼠标位置精确地置于鼠标侦听器事件中。问题是我的游戏支持分辨率800x600,1024x768,1680x1050的抢劫....当我有机会屏幕分辨率时,我如何获得相同的位置点击?
答案 0 :(得分:0)
最好的方法是不使用像素坐标,而是使用百分比坐标。
在屏幕截图中,您的电路板有一个顶部偏移和一个左偏移,以及宽度和高度。对于当前鼠标x位置,减去左偏移并除以游戏板的宽度。您将得到的x值为:
小于0:鼠标留在板上 介于0和1之间:板上的相对位置(0表示左侧,1表示完全位于右侧) 大于一:鼠标位置是正确的。
同样适用于y位置。
如果您根据这些相对值执行所有裁剪计算,则所有内容都应该依赖于依赖项。
答案 1 :(得分:0)
在我看来,你应该将每张照片放在不同的JPanel
上。您可以使用JLabel
添加图片。这样,您可以为每张图片添加侦听器。它将支持任何屏幕重新生成,因为它遵循Layout Manager
。此外,它将帮助您逻辑地组织代码。