В моем коде я хочу переместить объект, пока клавиша нажата и остановится при отпускании клавиши. Однако он перемещается только на один шаг, даже когда я удерживаю нажатой клавишу. Вот пример кода. Я напечатал значения (x, y). Любое предложение? Благодарю.Выполнение цикла до нажатия клавиши в pygame
x = 20
y = 20
def keydown(evt):
global x, y
if evt.type == pygame.KEYDOWN:
if(evt.key == pygame.K_RIGHT): x += 2.0
if(evt.key == pygame.K_LEFT): x -= 2.0
if(evt.key == pygame.K_UP): y += 2.0
if(evt.key == pygame.K_DOWN): y -= 2.0
if evt.type == pygame.KEYUP:
if(evt.key == pygame.K_RIGHT or evt.key == pygame.K_LEFT): x = x
if(evt.key == pygame.K_UP or evt.key == pygame.K_DOWN): y = y
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
print(x, y)
keydown(event)
PS: Я попробовал это, как писал где-то в этом форуме (How can I make a sprite move when key is held down), но без успеха.
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]: x += 2.0
if keys[pygame.K_LEFT]: x -= 2.0
if keys[pygame.K_UP]: y += 2.0
if keys[pygame.K_DOWN]: y -= 2.0