0
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();
}

然后我为播放器创建椭圆,我添加KeyListeners 方法来检测键当我运行时我不能使用箭头键来移动播放器对象??我的代码有什么问题???

4

1 回答 1

0

假设上面的代码在一个扩展的类中GraphicsProgram,那是有效的代码,应该像写的那样工作。您正在检查正确的键代码(尽管确保它们没有在您的输入设备上以某种方式重新映射),您添加addKeyListeners()正确。

一个问题是GraphicsProgram对象必须具有焦点,否则将无法识别键。要进行测试,您可以启动程序并立即在小程序窗口中单击以获取焦点。此时,应识别键。

于 2014-02-05T14:21:09.000 回答