Проблема с одновременным нажатием нескольких клавиш для игры на двоих - PullRequest
2 голосов
/ 26 января 2020

Я не уверен, является ли это моим кодированием или только моими компьютерными ограничениями, но, похоже, у меня проблема с нажатием нескольких клавиш в игре для двух игроков. Сами клавиши работают правильно, и я тоже их хочу, но поскольку два игрока могут одновременно нажимать 4 клавиши (скажем, W , A , UP и LEFT ) если они оба ускоряются вперед и хотят увернуться от чего-то влево или вправо, кажется, что одна из клавиш не будет работать для одного из игроков, если все 4 будут нажаты одновременно ... ' left '( A ) внезапно сработает, если player1 отпустит' up '( W ) - это когда одновременно player2 нажимает кнопку "вверх" ( UP *) 1016 *) и скажите правильно ( ВПРАВО )

Есть ли лучший способ запросить событие нажатия клавиши /, чтобы это прекратилось, или мой код в порядке, и, возможно, мой компьютер просто отстает ?

keystate1 = pygame.key.get_pressed()
if keystate1[pygame.K_a]:
    self.speedx = -5
if keystate1[pygame.K_d]:
    self.speedx = 5
if keystate1[pygame.K_w]:
    self.speedy = -5
if keystate1[pygame.K.s]:
    self.speedy = 5

То же самое go для player2, за исключением [K.LEFT, K.RIGHT, K.UP, K.DOWN]

Любая помощь будет оценена

При дальнейшем тестировании кажется, что player1 нажимает A только тогда, когда оба player1 & player2 нажимают вверх ( W & UP ) одновременно ... тогда player1 не будет двигаться влево, если player1 не разрешит go из W или player2 не позволит go из UP . Это никак не влияет на player2 ( UP , DOWN , LEFT , RIGHT ) или любое другое направление player1 кроме левого A ?

1 Ответ

2 голосов
/ 26 января 2020

Это аппаратное ограничение вашей клавиатуры. Большинство из них не смогут зарегистрировать нажатие 4 клавиш без модификаторов одновременно из-за способа их изготовления

...