嘗試使用頭頂相機進行簡單的RPG遊戲。我去的時候去實現的MouseMotionListener,這不是我第一次用一個的MouseMotionListener,看來該mousedMoved的MouseEvent只能獲得的所謂一次,然後簡單似乎沒有工作了。我一直堅持這一段時間,所有的研究都讓我陷入死衚衕。mouseMoved事件似乎只被召喚一次
我確實有一個完整的遊戲循環帶有刻度和渲染方法。但正如你在下面的代碼中看到的那樣,在鼠標處理類(代碼的底部)中,它會返回一個數字,每當鼠標移動時它就會增加一個數字(在tick方法中,我向控制檯輸出數字的值),並且它還應該向控制檯輸出鼠標的x和y座標。當你運行程序時,數字等於1,它只打印鼠標座標一次。一個例子是控制檯輸出會是這個樣子:
124 82
1
或者,如果到時程序啓動,它會看起來像這樣我的鼠標沒有懸停JFrame中:
0
這裏是我的我的遊戲循環init方法:
private void init() {
display = new Display("Operation Blood Bath: Alpha 0_5.0", 800, 600);
game = new Game();
Assets.init();
}
這裏是我的顯示器類,被調用的init方法:
public class Display {
private JFrame frame;
private Canvas canvas;
public Display(String title, int width, int height) {
frame = new JFrame(title);
frame.setSize(width, height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
canvas = new Canvas();
canvas.setPreferredSize(new Dimension(width, height));
canvas.setMaximumSize(new Dimension(width, height));
canvas.setMinimumSize(new Dimension(width, height));
canvas.setFocusable(false);
frame.add(canvas);
frame.addMouseMotionListener(new MouseMotionHandling());
frame.pack();
}
public Canvas getCanvas() {
return canvas;
}
public JFrame getFrame() {
return frame;
}
}
蜱方法:
private void tick() {
game.tick();
System.out.println(MouseMotionHandling.HELLO());
}
下面是其中被調用的顯示類鼠標處理類:
public class MouseMotionHandling implements MouseMotionListener {
private static int number = 0;
@Override
public void mouseDragged(MouseEvent arg0) {
}
@Override
public void mouseMoved(MouseEvent arg0) {
System.out.println(arg0.getX() + " " + arg0.getY());
number++;
}
public static int HELLO() {
return number;
}
}
我在哪裏去這裏工作?
工作知府!非常感謝你。 – HuffelPuff