我有一个名为animacionPacman的类,它具有用键盘移动pacman的关键事件。我想实现一个暂停方法,让pacman在按下空格键时等待,并在再次按下该键时继续。我尝试创建一个帖子,但我是java的新手。该程序没有错误,但pacman没有移动。 这是一些代码:
class MiThread extends Thread {
private AnimacionPacman p;
public MiThread(AnimacionPacman p) {
this.p = p;
}
@Override
public void run() {
p.move();
}
}
Public class Scenario extends JPanel implements ActionListener {
private MiThread hilo;
animacion = new AnimacionPacman();
hilo = new MiThread(animacion);
private class TAdapter extends KeyAdapter {
public void keyReleased(KeyEvent e){
animacion.keyReleased(e);
}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
hilo.start();
animacion.keyPressed(e);
}
}
答案 0 :(得分:0)
取决于你将如何实现这一点,但不要担心它非常简单!你有一个KeyAdapter,如果按下一个键,pac man会移动。你想覆盖(重新定义你的版本)KeyAdapter中一个名为keyReleased的方法,它停止了pac man。
我不会在代码中写出来,因为我认为自己试一试会给你带来好处,但你的两个选择是让一把钥匙(比如右箭头)让Pacman在按下时向右移动,并在停止时停止相同的键(右箭头)被释放。你的第二个选择是让右箭头向右移动Pacman右箭头keyPressed,但让空格键在keyPressed上阻止他。我自己的观点是,释放一个键可以更直观地阻止该角色,而不是让一个单独的键控制器停止启动另一个键。
这两种方法的共同点是需要一个stop()方法,就像你有一个move()方法一样。同样,取决于你如何移动角色的实现,但通常keyRelease()将导致移动速度设置为0.