Я новичок в модуле pygame.
Я отслеживаю нажатия клавиш с терминала через PyCharm IDE.
Для ясности добавляю скриншот рабочей области мой ниже.
Теперь проблема в том, что я обнаружил, что если я нажимаю и удерживаю DOWN
и UP
в то же время, система может обнаруживать RIGHT
нажатий клавиш, но не знать о LEFT
нажатиях клавиш.
То же самое относится к удерживанию W
и S
клавиши вместе и воспринимают T
клавиши, но не ощущают E
или Q
клавиш.
RIGHT
& LEFT
при удержании, ощущения DOWN
не чувствуют UP
Я добавляю полностью готовый к запуску код (за исключением того, что вам нужен установленный модуль pygame) для тех, кто может захотеть попробовать на своем компьютере.
import pygame
#import time
pygame.init()
display_width = 800
display_height = 600
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
#carImg = pygame.image.load('raceCar.png')
# def drawCar(x, y):
# gameDisplay.blit(carImg, (x, y))
x = display_width * 0.45
y = display_height * 0.6
dx = 0
dy = 0
gameDisplay = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption("MY GAME")
clock = pygame.time.Clock()
crashed = False
Quit = False
i = 0
while not crashed and not Quit:
for event in pygame.event.get():
# if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
# Quit = True
#
# elif event.type == pygame.KEYDOWN:
#
# if event.key == pygame.K_DOWN:
# dy += 5
# elif event.key == pygame.K_UP:
# dy += -5
# elif event.key == pygame.K_RIGHT:
# dx += 5
# elif event.key == pygame.K_LEFT:
# dx += -5
#
# elif event.type == pygame.KEYUP:
#
# if event.key == pygame.K_DOWN:
# dy += -5
# elif event.key == pygame.K_UP:
# dy += 5
# elif event.key == pygame.K_RIGHT:
# dx += -5
# elif event.key == pygame.K_LEFT:
# dx += 5
#
# elif event.type == pygame.QUIT:
# Quit = True
i += 1
print(i, event)
# x = (x + 1) % display_width
# y = (y - 1) % display_height
x += dx
y += dy
gameDisplay.fill(white)
x = x if x <= display_width else -163
x = x if x+163 >= 0 else display_width
y = y if y <= display_height else -244
y = y if y + 244 >= 0 else display_height
# drawCar(x, y)
pygame.display.update()
clock.tick(60)
pygame.quit()
quit()
Примечание что, я закомментировал ненужные части, чтобы его можно было легко запускать для всех.