[英]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.