Я новичок в использовании Pygame, и я следовал учебник на YouTube. У меня возникла проблема с движением, которое парень из учебного пособия мог двигать, просто удерживая кнопку, которую я не мог. Мне приходилось постоянно нажимать на кнопку, я точно следовал его коду.
Я искал в Интернете и обнаружил, что этот код
(pygame.key.set_repeat(True)
может решить проблему, но ему не сказали, где его поставить, вот код:
import pygame
pygame.init()
win = pygame.display.set_mode((500,500))
pygame.display.set_caption("My First Pygame")
x = 50
y = 425
width = 40
height = 60
vel = 5
isJump = True
jumpCount = 10
pygame.key.set_repeat(True)
run = True
while run:
pygame.time.delay(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and x > vel:
x -= vel
if keys[pygame.K_RIGHT]and x < 500 - width - vel:
x += vel
if not(isJump):
if keys[pygame.K_UP] and y > vel:
y -=vel
if keys[pygame.K_DOWN] and y < 500 -height - vel:
y +=vel
if keys[pygame.K_SPACE]:
isJump = True
else:
if jumpCount >= -10:
y -= (isJump ** 2) / 2
jumpCount -= 1
else:
isJump = False
jumpCount = 10
win.fill((0,0,0))
pygame.draw.rect(win, (0,255,0), (x,y, width, height))
pygame.display.update()
pygame.quit()
Сначала у меня был код, написанный под строкой, который говорит:
keys = pygame.key.get_pressed()
, он не работал, но как только я вынул его из основного l oop и поместил его перед в то время как l oop теперь это работает. Я могу удерживать клавишу нажатой и заставлять моего персонажа двигаться без необходимости постоянного нажатия. Мой вопрос: почему это работает сейчас?