让角色跳入JavaFX

时间:2017-01-18 18:41:46

标签: java javafx

我已经尝试过使用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);

                }
            }
        });
     }

谢谢!

2 个答案:

答案 0 :(得分:2)

阅读documentationevent.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 */

我希望这能解决你的问题!