java - 在 Java 中使用箭头键移动图像

标签 java user-interface keyevent toolkit

我正在用 Java 编写一个小游戏,一个明显的关键组件是能够使用箭头键移动角色。但是,我无法获得所有指示,只有以下 block 的最后两个 if 语句才真正激活。

public void Update(){
    if(Canvas.keyboardKeyState(KeyEvent.VK_UP))
        yVel = -1;
    else
        yVel = 0;

    if(Canvas.keyboardKeyState(KeyEvent.VK_LEFT))
        xVel = -1;
    else
        xVel = 0;

    if(Canvas.keyboardKeyState(KeyEvent.VK_DOWN))
        yVel = 1;
    else
        yVel = 0;

    if(Canvas.keyboardKeyState(KeyEvent.VK_RIGHT))
        xVel = 1;
    else
        xVel = 0;

    x += xVel;
    y += yVel;
}

我的输入很好,所有键都在注册,但没有进行数学计算。如果有人有建议或库/包可以使这更容易,请告诉我。

最佳答案

您覆盖了 else block 中的值。您可能想要这样做。

public void Update(){

    xVel = 0;
    yVel = 0;

    if(Canvas.keyboardKeyState(KeyEvent.VK_UP)) {
        yVel -= 1;
    }

    if(Canvas.keyboardKeyState(KeyEvent.VK_LEFT)) {
        xVel -= 1;
    }

    if(Canvas.keyboardKeyState(KeyEvent.VK_DOWN)) {
        yVel += 1;
    }

    if(Canvas.keyboardKeyState(KeyEvent.VK_RIGHT)) {
        xVel += 1;
    }

    x += xVel;
    y += yVel;
}

关于java - 在 Java 中使用箭头键移动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36086902/

相关文章:

java - 单击 TextView 后 Android 应用程序停止工作

Java:在没有 KeyListener 或使用任何其他自定义类的情况下捕获按键事件

java - 基于 Spring-ws @Endpoint/@PayloadRoot 的配置给出 404

java - 如何获取表盘复杂功能的提供者信息?

java - 文件选择器只显示文件,不允许用户创建自己的文件

.net - 支持视觉风格的控制按钮背景颜色

r - 使用 Shiny 的ggplot map 获得正确的点击坐标

java - 如何在 Java 中生成没有键码的键盘事件?

javascript - 使用按键事件和 jquery 将文本放入输入元素

java - 使用基本技术生成 10 个不重复的随机数