【发布时间】:2017-10-19 01:00:44
【问题描述】:
我要做的第一件事就是为我的英语道歉,我会尽量写得通俗易懂。 另外,我已经尝试搜索此问题的解决方案,但直到现在我才找到..
代码有问题的部分如下:
//eventmanagement for the bat
scene.setOnKeyPressed (new EventHandler <KeyEvent> () {
public void moveBat(double speed) {
if ((speed > 0) && ((bat.getLayoutX() + bat.getWidth())<scene.getWidth())){
bat.setLayoutX(bat.getLayoutX() + speed);
}
if ((speed < 0) && ((bat.getLayoutX() > 0))){
bat.setLayoutX(bat.getLayoutX() + speed);
}
};
@Override
public void handle(KeyEvent event){
if (event.getCode().toString() == "RIGHT"){
this.moveBat(batVelocity);
}
if (event.getCode().toString() == "LEFT"){
this.moveBat(-batVelocity);
}
}
});
这东西有效,但是如果我按下左键,我没有松开它,所以让它保持按下状态,然后“蝙蝠”将向左移动一次,然后延迟大约 1 秒,然后继续向左移动。
我希望在按住 LEFT 按钮的时间内继续向左移动。有人知道如何解决这个问题吗?
非常感谢您的时间和回答!
克鲁兹
【问题讨论】:
-
还有:don't use == to compare strings,这在各方面都是错误的。比较按键如下
event.getCode() == KeyCode.RIGHT -
好的,非常感谢!! :)