Проблемы с логикой pygame

Есть следующий код

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and x > (left_line + (width / 2)) \
            and not keys[pygame.K_UP] and not keys[pygame.K_DOWN]:
        x -= speed
    if keys[pygame.K_RIGHT] and x < (right_line - (width * 2 - width / 2)) \
            and not keys[pygame.K_UP] and not keys[pygame.K_DOWN]:
        x += speed
    if keys[pygame.K_UP] and y > ((res_y - res_y) + 10):
        if keys[pygame.K_SPACE]:
            y -= speed + 6
            nitro = True
        else:
            y -= speed
            nitro = False

Проблема заключается в том , что когда нажаты одновременно клавиши K_UP, K_SPACE и K_RIGHT то срабатывает условие

        if keys[pygame.K_SPACE]:
            y -= speed + 6
            nitro = True

Если нажата просто K_UP и K_SPACE , то условие тоже срабатывает как нужно

Но когда нажаты клавиши K_UP,K_SPACE и K_LEFT условие не срабатывает

Не могу понять из за чего

Даже если делаю вот так

    if keys[pygame.K_UP] and y > ((res_y - res_y) + 10):
        if keys[pygame.K_SPACE] and keys[pygame.K_LEFT]:
            y -= speed + 6
            nitro = True
        elif keys[pygame.K_SPACE] and keys[pygame.K_RIGHT]:
            y -= speed + 6
            nitro = True
        elif keys[pygame.K_SPACE]:
            y -= speed + 6
            nitro = True
        else:
            y -= speed
            nitro = False

Срабатывает все кроме условия с K_LEFT

Если вместо K_LEFT использовать любую другую клавишу , то все работает


Ответы (2 шт):

Автор решения: shalor1k

Вы пробовали сделать так?


if keys[pygame.K_UP] and keys[pygame.K_LEFT] and keys[pygame.K_SPACE]:
    y -= speed + 6
    nitro = True

→ Ссылка
Автор решения: SlaerWay

Проблема решена , все было из за клавиатуры , которая почему то только с клавишей K_LEFT не может обработать больше двух нажатий одновременно

→ Ссылка