Pygame перебирает картинки одним кликом - PullRequest
1 голос
/ 17 января 2020

Я не могу понять, как сделать так, чтобы одним нажатием кнопки, не удерживаясь, я мог получить событие, которое циклически перебирает несколько изображений, каждое из которых длится несколько кадров. Кроме того, чтобы сделать это с остальной частью программы, работающей нормально и не делающей паузу для изображений.

1 Ответ

2 голосов
/ 17 января 2020

Создать список изображений:

image_list = [image1, image2, ...]

и индекс, в котором указано текущее изображение:

current_i = 0

Создать событие таймера (pygame.time.set_timer() ) и увеличивайте индекс при возникновении события:

image_timer = pygame.USEREVENT+1
pygame.time.set_timer(image_timer, 3000) # 3000 milliseconds == 3 seconds

run = True
while run:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False 
        if event.type == image_timer:
            current_i += 1
            if current_i == len(image_list):
                current_i = 0

Примечание, pygame.time.set_timer() многократно создает событие в очереди событий каждое заданное количество миллисекунд.

Blit изображение с индексом current_i:

window.blit(image_list[current_i], (0, 0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...