【问题标题】:JavaFx KeyEvent won't move objectJavaFx KeyEvent 不会移动对象
【发布时间】:2017-01-09 02:47:46
【问题描述】:

我目前正在尝试制作一个非常简单的游戏,作为使用 JavaFX 可以完成的实验,并且我有一个代表一个人的小矩形。该矩形设置在一个窗格中,我试图弄清楚如何最好地制作它,以便箭头键使他向左移动 5 px。下面的代码是我正在尝试的。如果您知道如何使此代码工作或有更好的代码,我将不胜感激。

scene.setOnKeyPressed(new EventHandler<KeyEvent>() {
        @Override
        public void handle(KeyEvent ke) {
            if(ke.equals(KeyCode.KP_LEFT)) {
                int xLoc = (int)avatar.getX();
                int newX = xLoc - 5;
                int yLoc = (int)avatar.getY();
                avatar.relocate(newX, yLoc);
            }
        }
    });

谢谢!

【问题讨论】:

    标签: java javafx keyevent


    【解决方案1】:

    KeyEvent不是密码,你需要getCode()

    if (ke.getCode().equals(KeyCode.KP_LEFT))
    

    【讨论】:

    • 此外,由于KP_LEFT 是一个枚举常量,== 足以比较这些值。
    • 感谢您的帮助。尽管如此,角色还是不会移动。有什么想法吗?
    • @PorterFarley 在这一点上,如果不提供更多代码,很难进一步推断。我们需要知道avatar 是什么以及它是如何声明/定义的。我们绝对需要知道relocate() 方法的作用。此外,在运行调试时放置断点也可以帮助您调试它; avatar.relocate() 甚至在运行时执行吗?
    • KP_Left -> 您正在使用左边的数字键盘。确保 Num Lock 已关闭。
    • 感谢大家的帮助。我对 Stack 还是很陌生,真的不知道该怎么做。我通过使用屏幕按钮进行移动找到了一个单独的解决方案,但我会确保在我提出的任何其他问题中更改这些内容。再次感谢您。
    猜你喜欢
    • 2018-08-19
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多