我正在做一个正交平铺地图Java游戏,当我的船移动到x和y界限按一个方向键它停止移动(按预期),但如果我继续按下键我的角色离开屏幕
以下是我正在使用的代码:
@Override
public boolean keyDown(int keycode) {
ship = world.getShip();
switch(keycode){
case Keys.W:
if (ship.getPosition().y<28.5f){
ship.getVelocity().y = 1;}
else {
ship.getVelocity().y = 0;
}
break;
case Keys.S:
if (ship.getPosition().y1){
ship.getVelocity().y = -1;}
else {
ship.getVelocity().y = 0;
}
break;
case Keys.A:
if (ship.getPosition().x0)
ship.getVelocity().x = -1.5f;
else{
ship.getVelocity().x = 0;
}
break;
case Keys.D:
if (ship.getPosition().x<39){
ship.getVelocity().x = 1;
}
else{
ship.getVelocity().x = 0;
}
break;
default:
break;
}
return true;
}
@Override
public boolean keyUp(int keycode) {
ship = world.getShip();
switch(keycode){
case Keys.W:
if(ship.getVelocity().y == 1)
ship.getVelocity().y = 0;
break;
case Keys.S:
if(ship.getVelocity().y == -1)
ship.getVelocity().y = 0;
break;
case Keys.A:
if(ship.getVelocity().x == -1.5f)
ship.getVelocity().x = 0;
break;
case Keys.D:
if(ship.getVelocity().x == 1)
ship.getVelocity().x = 0;
break;
default:
break;
}
return true;
}
如果按键被按下,我应该怎样做才能让我的船停在屏幕上?
答案 0 :(得分:1)
如果按键被按下,我应该怎样做才能让我的船停在屏幕上?
首先使用当前的API。自JDK1.1
以来,已弃用keyUp()
和keyDown()
首先阅读Motion Using the Keyboard,了解有关如何处理此类内容的更多当前想法。代码示例执行基本边界检查,以确保您无法将组件移出屏幕。