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