我在java中制作游戏,并且添加了鼠标输入。这是我的代码。Java - 点击鼠标时,tick()循环导致多个动作
public class MouseInput implements MouseListener, MouseMotionListener {
public static boolean leftPressed;
public static boolean rightPressed;
public MouseInput(){
}
public void tick(){
if(leftPressed){
System.out.println("left pressed");
}
}
@Override
public void mousePressed(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON1){
leftPressed = true;
}else if(e.getButton() == MouseEvent.BUTTON3){
rightPressed = true;
}
}
@Override
public void mouseReleased(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON1)
leftPressed = false;
else if(e.getButton() == MouseEvent.BUTTON3)
rightPressed = false;
}
我删除了这个问题中没有涉及的所有额外代码,例如getters,setters和abstract方法。
当我运行这一点,我点击我看到的是
left pressed
left pressed
left pressed
left pressed
left pressed
left pressed
几次。 这是因为它在tick方法内部,每秒更新60次。我可以换到的mousePressed和的mouseReleased方法只能使一个
left pressed
非常感谢
继承空的方法实现。它来自哪里? – hotzst
以及'tick()'方法的用途是什么? –
您已经忽略了一些您的问题的重要细节,包括上面提到的@TimothyTruckle,tick方法的用途,以及更多有关GUI及其当前观察和期望行为的背景。请填写我们的知识空白帮助我们。 –