【发布时间】:2018-02-19 08:43:31
【问题描述】:
1我正在尝试一些 Java 游戏开发,到目前为止,我已经创建了一个可以通过键输入移动的框,现在我正在尝试鼠标输入。我有几个问题...
- 我正在使用一个名为 MouseInput 的类,它实现了 MouseMotionListener,这是获取鼠标坐标的正确方法吗?
- 我的盒子跟随我的鼠标,但偏移量很大,您认为问题可能是什么?
鼠标输入事件的代码如下:
@Override
public void mouseMoved(MouseEvent e) {
for (int i = 0; i < handler.object.size(); i++) {
GameObject tempObject = handler.object.get(i);
if (tempObject.getId()==ID.Player) {
tempObject.setX(MouseInfo.getPointerInfo().getLocation().x);
tempObject.setY(MouseInfo.getPointerInfo().getLocation().y);
}
}
}
附图显示了盒子,我的鼠标位于左上角0,0。
【问题讨论】:
-
1) 鼠标事件也有坐标(相对于作为事件发起者的对象),所以最好使用它。但在某些情况下(当您需要屏幕坐标时)您也可以使用
MouseInfo类。 2) 在我们得到一个简短的可运行的问题示例 (SSCCE) 之前,无法回答这个问题,因此我们也可以运行和调试它。可能您只需要在主面板 (tempObject.getParent().repaint()) 上调用revalidate()和repaint()方法。 -
我设法通过创建 2 个变量 mPosX = e.get() 和 mPosY = e.getY() 来解决这个问题,然后将 tempObject 设置为这些位置,这是否有原因? ?如果你知道,谢谢你
-
如需尽快获得更好的帮助,请发帖minimal reproducible example 或Short, Self Contained, Correct Example。
-
My box follows my mouse but on a huge offsetX 和 Y 得到的偏移量是多少?
标签: java swing mouseevent