我为大学开发了Monolone Clone游戏(玻利维亚垄断)。
我将垄断委员会放到Jpanel中,并尝试使用e.getX()将鼠标位置精确定位到鼠标侦听器事件中。问题是我的游戏支持800x600、1024x768、1680x1050分辨率的战利品...。当我获得屏幕分辨率时,如何获得相同的位置点击?
最佳答案
最好的方法是不使用像素坐标,而是使用百分比坐标。
在屏幕截图中,您的木板具有顶部偏移和左侧偏移,以及宽度和高度。
对于当前的鼠标x位置,减去左偏移并除以游戏板的宽度。您将获得的x值将是:
小于0:鼠标留在板上
在0和1之间:相对位置在板上(0完全在左侧,1完全在右侧)
大于1:鼠标位置在棋盘的右侧。
y位置也一样。
如果您随后根据这些相对值进行所有裁剪计算,则所有操作都应独立于依赖项。