Отображение таймера в игре "Черепаха" - PullRequest
0 голосов
/ 05 августа 2020

Вот мой код для таймера 30se c в моей игре с черепахой:

import time
starting_time = time.time()
time_limit = 30

while (time.time() - starting_time) < time_limit:
#Game logic here

Мой вопрос: как отобразить таймер обратного отсчета на экране?

1 Ответ

0 голосов
/ 05 августа 2020

Вместо использования библиотеки времени я бы использовал собственное событие таймера черепахи для создания таймера обратного отсчета:

from turtle import Screen, Turtle

FONT = ('Arial', 30, 'normal')

def countdown(time):
    screen.onclick(None)  # disable click until countdown completes
    turtle.clear()

    if time > 0:
        turtle.write(time, align='center', font=FONT)
        screen.ontimer(lambda: countdown(time - 1), 1000)
    else:
        turtle.write("Click Screen", align='center', font=FONT)
        screen.onclick(lambda x, y: countdown(30))

turtle = Turtle()
turtle.hideturtle()
turtle.write("Click Screen", align='center', font=FONT)

screen = Screen()
screen.onclick(lambda x, y: countdown(30))
screen.mainloop()

Это будет работать независимо от других действий на экране, пока вы остаетесь в пределах модель события черепаха.

...