我是一个菜鸟编码员,我正在尝试制作一个小型 2D 太空射击游戏,但遇到了一个问题。
我无法在对角线移动时拍摄。这个问题也与我遇到的一些问题有关,例如:我开始按住,然后开始按住,然后松开,但是向上键的按键监听器不再工作,所以我不再移动。
这是我的一些代码:
// This method is called by the KeyInput instance created up above when a key is pressed
public void keyPressed(KeyEvent e)
{
// Grabbing the key code that was pressed
int keyCode = e.getKeyCode();
// Accelerating the player based on key pushed
if (keyCode == KeyEvent.VK_RIGHT) {
player.setAccX(player.getAccTick());
} else if (keyCode == KeyEvent.VK_LEFT) {
player.setAccX(-player.getAccTick());
} else if (keyCode == KeyEvent.VK_DOWN) {
player.setAccY(player.getAccTick());
} else if (keyCode == KeyEvent.VK_UP) {
player.setAccY(-player.getAccTick());
} else if (keyCode == KeyEvent.VK_SPACE) {
bm.addBullet(new PlayerBullet(player.getX(), player.getY(), this));
}
}
// This method is called by the KeyInput instance created up above when a key is released
public void keyReleased(KeyEvent e)
{
// Grabs the key code of the key released
int keyCode = e.getKeyCode();
// Sets the accelerationg to 0 based on the key released
if (keyCode == KeyEvent.VK_RIGHT) {
player.setAccX(0);
} else if (keyCode == KeyEvent.VK_LEFT) {
player.setAccX(0);
} else if (keyCode == KeyEvent.VK_DOWN) {
player.setAccY(0);
} else if (keyCode == KeyEvent.VK_UP) {
player.setAccY(0);
}
}
我希望能够同时保持多个方向以及同时发射子弹。我知道这不是我的键盘,因为我玩过其他类似的游戏,我可以按住几个键仍然射击。谢谢你们的帮助!
:D