【发布时间】:2019-08-07 17:10:00
【问题描述】:
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == 32){ //spacekey
if (menu.isRun == true){ //Checks if menu is active or not
if (framecount > 10){ //Prevents too many missiles
instance.player.spaceKeyPressed();
framecount = 0;
}
}
menu.isRun = true; //sets menu to inactive
if (toggle != true){//prevents reopening game after a game over
if (menu.spaceKeyPressed()){
instance.CanRun = true; //loads game
toggle = true;
menu.update();//updates menu
}
}
}
if (e.getKeyCode() == 39) instance.player.rightKeyPressed();//right key moves player right
if (e.getKeyCode() == 37) instance.player.leftKeyPressed(); //left key moves player left
}
有了这个,用户只能移动或射击,不能同时进行。例如,如果用户按住右箭头向右移动并按空格,用户将停止。
【问题讨论】:
-
写
if (e.getKeyCode() == KeyEvent.VK_RIGHT),而不是测试39。你的代码会更容易理解。 -
@VGR “您的代码将更容易理解。” 我还使用常量进行编译时完整性检查。编译器不会选择
93而不是39,但它会检测到KeyEvent.VK_RIHGT有问题。
标签: java awt keylistener