У меня есть программа, которая рисует зеленый круг, который сжимается, и когда вы нажимаете p, круг исчезает и появляется красная линия. Но когда я нажимаю p, снова появляется зеленый круг, которого нет.Python pygame.event.get_pressed() не обновляется
Когда я вызываю функцию pygame.event.get_pressed()
после того, как я нажимаю p, он всегда возвращает то же значение. Есть ли какой-то сброс клавиатуры, который я должен использовать, чтобы снова получить метод get_pressed()
?
Вот мой код:
import pygame
import time
BLACK = (0,0,0)
WHITE = (255,255,255)
GREEN = (0,255,0)
RED = (255,0,0)
pygame.init()
size = (700,700)
screen = pygame.display.set_mode(size)
screennumber = 1
pygame.display.set_caption("Game Test")
running = True
width = 350
clock = pygame.time.Clock()
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill(BLACK)
pressed = pygame.key.get_pressed()
print(pressed)
if pressed[pygame.K_p]:
screennumber = 2
else:
screennumber = 1
if screennumber == 1:
pygame.draw.circle(screen,GREEN,[350,350], width,1)
pygame.display.flip()
if width>1:
width = width-1
if screennumber == 2:
time.sleep(0.25)
pause = True
while pause:
pressed = pygame.key.get_pressed()
print(pressed)
if pressed[pygame.K_r]:
pause = False
pygame.draw.line(screen,RED,[0,0],[700,700],5)
pygame.display.flip()
clock.tick(21)
pygame.display.flip()
clock.tick(21)
pygame.quit()
Спасибо!
Если остальная часть вашего кода (за исключением выхода) должна быть отступом после блока, вызывающего 'pygame.event.get()'? Я предполагаю, что 'pygame.key.get_pressed()' не обновляется до тех пор, пока не будет прочитано новое событие. –