我一直在研究一個基本的塔防遊戲,並且正在尋找跟蹤鼠標的移動。我不需要在拖動時跟蹤鼠標移動,而只是在鼠標懸停在屏幕上時才能看到塔的放置位置。我已經擴展了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