mousePressed
とイベントに少し問題がありmouseDragged
ます。Space Shooter ゲームを作成しようとしていますが、プレイヤーがマウスを押して移動することで射撃できるようにしたいと考えています。私が抱えている大きな問題は、mouseDragged
イベントにあると思います。より具体的には、マウスボタンを押すmousePressed
と呼び出され、完全に実行され、マウスを動かすと(マウスを押したままにする)mouseDragged
、正常に動作しますが、マウスの動きを止めると(注)押したままにします) 宇宙船が発砲を停止し、その理由がわかりません。
これはコードです:
private void initShootingThread(final MouseEvent e) {
new Thread() {
public void run() {
do {
playerShoot(e);
} while (buttonPressed);
}
}.start();
}
// // PLAYER SHOOTING EVENTS ////
public void mouseClicked(MouseEvent e) {
playerShoot(e);
}
public void mousePressed(MouseEvent e) {
buttonPressed = true;
initShootingThread(e);
}
public void mouseDragged(MouseEvent e) {
buttonPressed = false;
playerShoot(e);
}
public void mouseReleased(MouseEvent e) {
buttonPressed = false;
}
前もって感謝します!