0

私は 2 人用のゲームを持っています。1 人は WASD を使用し、もう 1 人は矢印キーを使用します。一度に複数のキーを許可する方法がわかりません。これが私のコードです:

List keyArray = new ArrayList();

    // Red guy input.
    if (e.getKeyCode() == 37) { // left key

        new LoadRedCharacter("leftrightfootred.gif");

        int x = Frame.redCharacterLabel.getX();
        int y = Frame.redCharacterLabel.getY();
        if (x < 0) {
            Frame.redHealthLabel.setLocation(x - 13, y - 15);
            Frame.redCharacterLabel.setLocation(x + 1, y);
            ResetEntities.redCharacterObj.setLocation(x + 1, y);
        } else {
            Frame.redHealthLabel.setLocation(x - 13, y - 15);
            Frame.redCharacterLabel.setLocation(x - 2, y);
            ResetEntities.redCharacterObj.setLocation(x - 2, y);
        }
        keyArray.add(37);
        System.out.println("array" + keyArray);
        Frame.frame.repaint();
        checkHitBox();
    }

青い文字の左の動きのコードもあります。それから私はこれを持っています:

        // Multi key input
    if (keyArray.contains(37) && keyArray.contains(65)) {
        System.out.print("array contains 37 and 65");
    }

それをテストするために。しかし、それは動作しません..

4

1 に答える 1

0

マルチスレッドのアプローチを取ることができます。赤鍵のみを扱う 1 つのスレッドと、青鍵のみを扱う別のスレッドを作成します。それらはそれぞれ独立して動作し、共有変数で同期を使用する場合、互いに干渉することはありません。

于 2013-03-12T13:07:15.630 に答える