Java KeyPressed - Не удается обнаружить нажатие пробела, если другие клавиши слишком

Как следует из названия, в моей Java-игре я не могу определить, нажимаю ли я клавишу пробела и другие клавиши одновременно.

Например, пробел является клавишей стрелять, а клавиши со стрелками заставляют игрока двигаться. Если я нажимаю клавишу со стрелкой вверх, а также клавишу со стрелкой влево и пробел, то он должен выстрелить пулями вверх и влево.

Однако после использования несколькихSystem.out.println(); для отладки я обнаружил, что если я нажимаю две клавиши, он не обнаруживает пробел, если он нажат.

public void keyPressed(KeyEvent e) {


if(e.getKeyCode() == 32){
    pressingSpacebar = true;
    System.out.println("Spacebar pressed true");
}


    // Up arrow key
    if(e.getKeyCode() == 38){
        up = true;
        System.out.println("Up = true");
    }
    // Down arrow key
    if(e.getKeyCode() == 40){
        down = true;
        System.out.println("Down = true");

    }
    // Right arrow key
    if(e.getKeyCode() == 39){
        right = true;
        System.out.println("Right = true");
    }
    // Left arrow key
    if(e.getKeyCode() == 37){
        left = true;
        System.out.println("Left = true");
    }
}

Тогда в keyReleased:

public void keyReleased(KeyEvent e) {
    if(e.getKeyCode() == 38){
        up = false;
        repaint();
    }
    if(e.getKeyCode() == 40){
        down = false;
        repaint();
    }
    if(e.getKeyCode() == 39){
        right = false;
        repaint();
    }
    if(e.getKeyCode() == 37){
        left = false;
        repaint();
    }
    if(e.getKeyCode() == 32){
        pressingSpacebar = false;
    }
}

Вот как я проверяю, нажимаете ли вы клавишу пробела и несколько клавиш:

if(pressingSpacebar){
        if(right == true && down == true && up == false && left == false){
            // Shoot bullet
        }
}   

Почему пробел не обнаружен? Если я не проверяю нажатие пробела, пули стреляют нормально, но когда я проверяю пробел, он просто не обнаруживает его.

Примечание: я читал другие посты, похожие на этот вопрос, но ответы были не очень полезны. Я новичок, когда дело доходит до этого, поэтому постараюсь дать простой ответ или немного объяснить. Заранее спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос