我已经尝试过使用KeyListener来使角色上升,这根本就没有做任何事情。有一个更好的方法吗?如果没有,有谁知道为什么KeyListener不工作?我真的很感激一些帮助。此外,我在时间轴中调用此方法,因此鸟不仅会下降1个像素,也不会上升一个
以下是KeyListener的代码(顺便说一下鸟落部分正常工作):
public static void birdJump() {
birdView.relocate(100, fall++);
if(fall > 201)
birdView.setRotate(50);
FlappyBird.root.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if (event.getCode().equals(32)) {
birdView.relocate(100, fall--);
if(fall > 199)
birdView.setRotate(-50);
}
}
});
}
谢谢!
答案 0 :(得分:2)
阅读documentation:event.getCode()
不会返回int
(或任何类型的数字),因此event.getCode().equals(32)
不可能是true
。< / p>
你想要
if (event.getKeyCode() == KeyCode.SPACE) {
// ...
}
答案 1 :(得分:1)
除了James_D所说的内容之外,我认为是因为你在布局上使用KeyEvent
默认情况下没有焦点,因为它属于Scene
,需要补救你必须把重点放在它上面:
root.setFocusTransversale(true); /* Enable focus on the layout */
root.requestFocus(); /* give the focus to the layout */
我希望这能解决你的问题!