我正在研究一个简单的游戏教程。当我按下按钮以提高速度时,播放器消失了;而如果我将Y / x值加到了它,它就会按需工作。我认为我的问题与代码的密钥发布部分有问题有关。无论如何,如果有人可以帮助我,那将是理想的选择。谢谢
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
for (int i=0; i<handler.object.size(); i++) {
GameObject tempObject = handler.object.get(i);
if (tempObject.getId() == ID.Player) {
//Key Events for player 1
if(key == KeyEvent.VK_W) tempObject.setY(tempObject.getY() -2);
if(key == KeyEvent.VK_S) tempObject.setVelY(2);
if(key == KeyEvent.VK_A) tempObject.setVelX(2);
if(key == KeyEvent.VK_D) tempObject.setVelX(-2);
}
if (tempObject.getId() == ID.Player2) {
//Key Events for player 2
if(key == KeyEvent.VK_UP) tempObject.setVelY(-5);
if(key == KeyEvent.VK_DOWN) tempObject.setVelY(5);
if(key == KeyEvent.VK_RIGHT) tempObject.setVelX(5);
if(key == KeyEvent.VK_LEFT) tempObject.setVelX(-5);
}
}
}
public void keyReleased(KeyEvent e) {
int key = e.getKeyCode();
for (int i=0; i<handler.object.size(); i++) {
GameObject tempObject = handler.object.get(i);
if (tempObject.getId() == ID.Player) {
//Key Events for player 1
if(key == KeyEvent.VK_W) tempObject.setVelY(0);
if(key == KeyEvent.VK_S) tempObject.setVelY(0);
if(key == KeyEvent.VK_A) tempObject.setVelX(0);
if(key == KeyEvent.VK_D) tempObject.setVelX(0);
}
if (tempObject.getId() == ID.Player2) {
//Key Events for player 2
if(key == KeyEvent.VK_UP) tempObject.setVelY(0);
if(key == KeyEvent.VK_DOWN) tempObject.setVelY(0);
if(key == KeyEvent.VK_RIGHT) tempObject.setVelX(0);
if(key == KeyEvent.VK_LEFT) tempObject.setVelX(-0);
}
}
}
答案 0 :(得分:0)
播放器1的'W'键按下代码将更改垂直位置,而不是速度。
您可能只用“ W”按钮进行测试,这会使播放器移出屏幕吗?