繁体   English   中英

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

[英]Moving images with the arrow keys in Java

我正在用 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;
}

它非常明显。 每次你的循环被执行时,它会发生这样的事情:

如果它执行第一个if语句,它也会执行其余的else statements

它应该是这样的:

xVal = 0;
yVal = 0;
if(keyDown){
    yVal++;
}
else if(keyUp){
    yVal--;
}
else if(keyLeft){
    xVal--;
}
else{
    xVal++;
}
//Your rest of the code.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM