我正在用Java编写一个小游戏,一个明显的按键组件就是能够使用箭头键移动角色。但是,我无法获得所有指导,只能实际激活以下块的后两个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块中的值。您可能想要这样做。

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;
}

07-24 22:23