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()正しく追加します。

問題の 1 つは、GraphicsProgramオブジェクトにフォーカスがなければキーが認識されないことです。テストするには、プログラムを開始し、すぐにアプレット ウィンドウをクリックしてフォーカスを取得します。この時点で、キーが認識されるはずです。

于 2014-02-05T14:21:09.000 に答える