gpt4 book ai didi

java - 为什么我的对象在 MouseMoved 上不移动?

转载 作者:行者123 更新时间:2023-11-29 03:54:47 24 4
gpt4 key购买 nike

简单的问题——如果一个对象是 onMouseMoved() 中的 .move() 的对象,为什么它不移动?我正在尝试将 Breakout 编写为 iTunes U 上 Stanford 106A 练习的一部分,但出于某种原因,我无法使用桨来跟踪鼠标。我是一个 Java 菜鸟,所以我确信它非常简单。有人可以看看这段代码吗?

/** Runs the Breakout program. */
public void run() {
setupBoard();
addMouseListeners();
}

/** Provides the initial GCanvas and blocks for the game */
private void setupBoard(){
this.setSize(APPLICATION_WIDTH,APPLICATION_HEIGHT);
addBricks();
paddle = new GRect(PADDLE_WIDTH, PADDLE_HEIGHT);
add(paddle, WIDTH/2-PADDLE_WIDTH/2,HEIGHT-PADDLE_Y_OFFSET);

}

public void MouseMoved(MouseEvent e){
paddle.move(e.getX()-paddle.getX(), 0);
}

private GRect paddle;
}

我不确定在这种情况下将 paddle 作为实例变量是否合适,因为它的“值”不会改变(桨始终是桨),但如果我只是定义它作为 setupBoard 中的新 GRect 我在 MouseMoved() 方法中遇到错误。

最佳答案

具有mouseMoved() 方法的类需要实现接口(interface)MouseMotionListener,并添加 Action 监听器。此外,事件处理程序是 mouseMoved() 而不是 MouseMoved()。所以,例如:

public class Game extends JPanel implements MouseMotionListener {
public void run() {
addMouseMotionListener(this);
//...
}
public void mouseMoved(MouseEvent e) {
paddle.move(e.getX()-paddle.getX(), 0);
}
//...
};

关于java - 为什么我的对象在 MouseMoved 上不移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6979798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com