-1

ゲームの簡単なチュートリアルを進めています。ボタンを押して速度を上げると、プレーヤーが消えますが、Y / x 値を追加すると、希望どおりに機能します。私の問題は、コードのキーリリース部分に何か問題があることに関係していると思います。とにかく、誰かが私を助けることができれば理想的です。ありがとう

public void keyPressed(KeyEvent e) {
    int key = e.getKeyCode();

    for (int i=0; i<handler.object.size(); i++) {
        GameObject tempObject = handler.object.get(i);
        if (tempObject.getId() == ID.Player) {
            //Key Events for player 1
            if(key == KeyEvent.VK_W) tempObject.setY(tempObject.getY() -2);
            if(key == KeyEvent.VK_S) tempObject.setVelY(2);
            if(key == KeyEvent.VK_A) tempObject.setVelX(2);
            if(key == KeyEvent.VK_D) tempObject.setVelX(-2);
        }
        if (tempObject.getId() == ID.Player2) {
            //Key Events for player 2
            if(key == KeyEvent.VK_UP) tempObject.setVelY(-5);
            if(key == KeyEvent.VK_DOWN) tempObject.setVelY(5);
            if(key == KeyEvent.VK_RIGHT) tempObject.setVelX(5);
            if(key == KeyEvent.VK_LEFT) tempObject.setVelX(-5);
        }

    }

}
public void keyReleased(KeyEvent e) {
    int key = e.getKeyCode();

    for (int i=0; i<handler.object.size(); i++) {
        GameObject tempObject = handler.object.get(i);
        if (tempObject.getId() == ID.Player) {
            //Key Events for player 1
            if(key == KeyEvent.VK_W) tempObject.setVelY(0);
            if(key == KeyEvent.VK_S) tempObject.setVelY(0);
            if(key == KeyEvent.VK_A) tempObject.setVelX(0);
            if(key == KeyEvent.VK_D) tempObject.setVelX(0);
        }
        if (tempObject.getId() == ID.Player2) {
            //Key Events for player 2
            if(key == KeyEvent.VK_UP) tempObject.setVelY(0);
            if(key == KeyEvent.VK_DOWN) tempObject.setVelY(0);
            if(key == KeyEvent.VK_RIGHT) tempObject.setVelX(0);
            if(key == KeyEvent.VK_LEFT) tempObject.setVelX(-0);
        }

    }

}
4

1 に答える 1