Tag: keypress

单键按下连续移动?

我正在尝试在java中创建一个程序,该程序涉及通过单键按下使对象不断移动。 Think Pacman,你按下一次然后Pacman继续上升,直到你按下另一把钥匙。 如果可能的话,我想保持代码简单。 我原来的动作(一个按键=一个动作)是这样的: public class AL extends KeyAdapter { public void keyPressed(KeyEvent e){ int keyCode = e.getKeyCode(); if(keyCode == e.VK_A){ x -= 5; } if(keyCode == e.VK_D){ x += 5; } if(keyCode == e.VK_W){ y -= 5; } if(keyCode == e.VK_S){ y += 5; } } 值中的x和y是椭圆的位置。 这种方法很完美,但是我希望它只在我按下一次键后继续移动,而不是必须按住键以保持运动。 我尝试了一个带有布尔参数的while循环,该参数移动时为true而不是false,但是一旦我激活循环,​​它就会冻结程序。 这是一段代码示例: public void keyPressed(KeyEvent […]

处理多次按键忽略重复键

我在另一个问题的评论部分询问了这个问题(> 我如何处理Java中的同时按键? ),并被要求完全提出一个新问题。 我的问题是,当我创建一个按键的ArrayList时,如果用户按下键,则不能通过keyReleased事件足够快地删除它们。 我希望运动与“asdf”以及北,东,南,西,东北……等。 这是我的两个事件的代码: @Override public void keyPressed(KeyEvent e) { if(chatTextField.isFocusOwner() == true){ //do nothing – don’t walk } else { logger.debug(“Key Pressed: ” + e.getKeyChar()); lastKey = keysPressed.get(keysPressed.size()-1); for (String key : keysPressed){ if (!key.contains(String.valueOf(e.getKeyChar())) && !lastKey.contains(String.valueOf(e.getKeyChar()))){ keysPressed.add(String.valueOf(e.getKeyChar())); System.out.println(“ADDED: ” + keysPressed); } } String keysList = keysPressed.toString(); if (keysList.contains(“w”)){ if (keysList.contains(“d”)){ […]