Как использовать pygame.time.get_ticks - PullRequest
1 голос
/ 07 мая 2020

Как с помощью pygame.time.get_ticks заставить что-то исчезнуть через определенное время? Я пытаюсь нарисовать линию, а затем заставить ее исчезнуть через 2 секунды, и я экспериментировал с get_ticks, потому что мне сказали, что это сработает, но поскольку он считает время, начиная с момента инициализации кода, я не могу показаться чтобы определить точное время, я рисую круг и 2 секунды спустя.

1 Ответ

1 голос
/ 07 мая 2020

В то время, когда вы хотите начать рисовать линию, вызовите pygame.time.get_ticks и сохраните результат, назовем его start_time.

Затем вы вызываете pygame.time.get_ticks каждый кадр и сравниваете это значение с ценность, которую вы сохранили.

Итак, если pygame.time.get_ticks() - start_time > 2000 вы знаете, что прошло две секунды, и вы перестаете рисовать линию.

Вот простой пример:

import pygame

def main():
    pygame.init()
    screen = pygame.display.set_mode((500, 500))
    clock = pygame.time.Clock()
    dt = 0
    start_time = None

    while True:
        events = pygame.event.get()
        for e in events:
            if e.type == pygame.QUIT:
                return
            if e.type == pygame.KEYDOWN:
                start_time = pygame.time.get_ticks()

        screen.fill((30, 30, 30))

        if start_time and pygame.time.get_ticks() - start_time < 2000:
            pygame.draw.line(screen, (255, 255, 255), (0, 0), (500, 500), 10)
            pygame.draw.line(screen, (255, 255, 255), (500, 0), (0, 500), 10)

        pygame.display.update()
        dt = clock.tick(60)

if __name__ == '__main__':
    main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...