Определите массив прямоугольников и счетчик:
rects = [(0, 0, 20, 20), (100, 100, 120, 120), (200, 200, 220, 220)]
counter = 0
Нарисуйте прямоугольник в зависимости от counter
в valami
:
def valami() :
pygame.draw.rect(screen, (0, 255, 0), rects[counter % len(rects)])
Определите пользовательское событие, см. (pygame.event
) и запустите таймер с интервалом в 5000 миллисекунд (5 секунд) перед основным циклом, см. pygame.time.set_timer()
:
mytimerevent = pygame.USEREVENT + 1
pygame.time.set_timer(mytimerevent, 5000) # 5000 milliseconds
Увеличение counter
когда истечет таймер.Таймер можно остановить, вызвав pygame.time.set_timer()
с интервалом 0:
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == mytimerevent: # timer event
counter += 1
if counter == 2:
pygame.time.set_timer(mytimerevent, 0) # stop timer
screen.fill(0)
valami()
pygame.display.flip()
Обратите внимание, что оператор модуля (%
) вычисляет остаток (остаток) от интеграладеление.
Из-за rects[counter % len(rects)]
прямоугольники будут нарисованы одним в цикле, если вы не остановите таймер.