我一直在研究一个基本的塔防游戏,并且正在寻找跟踪鼠标的移动。我不需要在拖动时跟踪鼠标移动,而只是在鼠标悬停在屏幕上时才能看到塔的放置位置。我已经扩展了MouseAdapter来制作一个控制器,然后点击放置塔架,但是我无法确定如何跟踪鼠标移动。应该覆盖mouseMoved做到这一点?我尝试了一点成功。在发表印刷声明后,我可以看到事件并未发生。这是我目前有:在java中跟踪鼠标移动
public class MouseController extends MouseAdapter {
private final Board my_board;
private final int square_size;
public MouseController(final Board the_board, final int the_square_size) {
my_board = the_board;
square_size = square_size;
}
@Override
public void mouseClicked(final MouseEvent e) {
super.mouseClicked(e);
Point p = e.getPoint();
my_board.placeTower(p.x/square_size, p.y/square_size - 1);
}
@Override
public void mouseMoved(final MouseEvent e) {
super.mouseMoved(e);
Point p = e.getPoint();
my_board.placeCursor(p.x/square_size, p.y/square_size - 1);
}
}
任何帮助表示赞赏。谢谢!
尝试取出最终的MouseEvent e。它应该只是MouseEvent e – user2277872
@ user2277872不应该有所作为,事实上,它可以争辩说,它是更正确的(有最后的)作为对象的参考不会改变 – MadProgrammer
我实际上告诉我的一个教授们最后应该几乎总是用在方法参数上。无论如何,我没有将控制器同时作为mouseListener和MouseMotionListener进行添加。我之前犯过这个错误。不管怎么说,多谢拉。 – eatinasandwich