Вероятно, вы не захотите иметь две петли. В настоящее время вы не выполняете никакой обработки событий внутри вашего внутреннего l oop, что означает, что нет хорошего способа остановить это. Но вместо того, чтобы добавлять туда дополнительные элементы pygame.event
, почему бы просто не использовать повторно код из основного l oop?
Вот код, который, вероятно, довольно близок к рабочему (он неполный, поэтому я не протестировал). Большинство изменений просто удаляют отступы от того, что у вас уже было.
while run_me:
clock.tick(fps_limit)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run_me = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
T = 1
elif event.key == pygame.K_RIGHT: # add some code to stop drawing
T = 0
if T == 1: # change this to an `if` rather than a `while`, and unindent
posx = posx - 1
screen.fill(black)
pygame.draw.circle(screen, colorcircle, (posx, posy), 50)
pygame.display.flip()
if posx == 0:
posx = posx + 600
Вероятно, вам следует использовать более подходящее имя переменной, чем T
.