簡體   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