您需要使用一系列标志和某种“更新”循环来根据标志的状态来更新游戏的状态…
例如,首先创建一系列标志…
private boolean p1Left, p1Right, p2Left, p2Right = false;
这些可以由单个播放器对象轻松维护,但是您没有提供那么多代码…
接下来,您需要监视按键和按键释放事件,并根据需要设置标志的状态…
this.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_D, 0, false), "right1down");this.getActionMap().put("right1down", new AbstractAction() { public void actionPerformed(ActionEvent e) { p1Right = true; }});this.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_D, 0, true), "right1up");this.getActionMap().put("right1up", new AbstractAction() { public void actionPerformed(ActionEvent e) { p1Right = false; }});
然后,您需要某种可以更新游戏状态的循环或计时器。就个人而言,我喜欢使用
javax.swing.Timer,但仅此而已。
在更新循环的每次运行中,您需要检查每个标志的状态并相应地更新对象。
if (p1Right) { board.cezmi1.moveRight();}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)