public void run() {
setSize(700,700);
setGame();
}
public GObject drawPlayer() {
GOval player = new GOval(getWidth()/2,getHeight()/2,10,10);
player.setFilled(true);
player.setFillColor(Color.red);
return player;
}
public void keyPressed(KeyEvent e) {
switch(e.getKeyCode()) {
case KeyEvent.VK_UP: Player.move(0, -10);break;
case KeyEvent.VK_DOWN: Player.move(0, 10);break;
case KeyEvent.VK_LEFT: Player.move(-10, 0);break;
case KeyEvent.VK_RIGHT: Player.move(10, 0);break;
}
}
public GRect object;
public void setGame() {
setObject();
GObject Player = drawPlayer();
add(Player);
addKeyListeners();
}
我创建了椭圆形播放器然后,我使用addKeyListeners方法来检测键 当我运行时,我不能使用arrowkey移动播放器对象?? 我的代码有什么问题???
答案 0 :(得分:0)
假设上面的代码位于扩展GraphicsProgram
的类中,那么这是有效的代码,应该按照编写的方式工作。您正在检查正确的密钥代码(尽管确保它们不会以某种方式在您的输入设备上重新映射),但您可以正确添加addKeyListeners()
。
一个问题是GraphicsProgram
对象必须具有焦点,否则密钥将无法识别。要进行测试,您可以启动该程序并立即单击小程序窗口以获得焦点。此时,应识别密钥。