Box对象不以鼠标为中心

时间:2018-02-19 08:43:32

标签: java swing mouseevent

1我尝试了一些Java游戏开发,到目前为止我已经创建了一个可以通过键输入移动的盒子,现在我正在尝试鼠标输入。我有几个问题......

  1. 我正在使用一个名为MouseInput的类来实现MouseMotionListener,这是获得鼠标合作的正确方法吗?
  2. 我的方框跟着我的鼠标,但是在一个巨大的偏移上,您认为问题可能是什么?
  3. 以下是鼠标输入事件的代码:

     @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 个答案:

答案 0 :(得分:0)

@Override
public void mouseMoved(MouseEvent e) {

    mPosX = e.getX();
    mPosY = e.getY();

    System.out.println(mPosX + ", " + mPosY);

    for (int i = 0; i<handler.object.size(); i++){
        GameObject tempObject = handler.object.get(i);

        if (tempObject.getId() == ID.Player){
            tempObject.setX(mPosX);
            tempObject.setY(mPosY);
        }
    }
    e.consume();
}

这里的代码似乎解决了这个问题,但是,我并不完全确定原因。