Это проще сделать, чем сделать.Вместо clear()
я рекомендую undo()
для такого рода приложений обновления текста (например, счет в игре, таймер и т. Д.). Переместите выделенную черепаху туда, куда идет текст, введите начальное (нулевое) значение,и когда вы хотите новое значение, выполните комбинацию undo()
и write()
:
from turtle import Screen, Turtle
FONT = ('Arial', 100, 'bold')
num = 0
def counting(x, y):
global num
num += 1
count.undo() # undo previous write()
count.write(num, align="center", font=FONT)
wn = Screen()
wn.bgcolor('black')
wn.title("Clicker")
wn.setup(650, 650, starty=15)
count = Turtle(visible=False)
count.color("white")
count.write(num, align="center", font=FONT)
wn.onscreenclick(counting)
wn.mainloop()
(функция черепахи отменить была добавлена в Python 3.)основанная среда, такая как черепаха, никогда не должна иметь while True:
контроля - она потенциально блокирует события, которые вы хотите.Вы должны настроить все свои обработчики событий и передать управление главному циклу событий с помощью mainloop()
или одного из его вариантов.Кроме того, избегайте tracer()
, если вы не полностью понимаете, что он делает, и у вас уже есть рабочий код, который требует оптимизации.