import turtle
# Настройка экрана
screen = turtle.Screen()
screen.title("Ящерица за курсором")
screen.bgcolor("white")
screen.setup(800, 600)
screen.tracer(0) # чтобы не было мерцания
# Ящерица
lizard = turtle.Turtle()
lizard.shape("triangle")
lizard.shapesize(1.5)
lizard.color("green")
lizard.penup()
lizard.speed(0)
# Скорость движения за курсором (меньше = плавнее, но медленнее)
SPEED = 0.2
def move_to_cursor():
# текущие координаты ящерицы
x, y = lizard.position()
# позиция курсора мыши
cx, cy = screen.cv.winfo_pointerx(), screen.cv.winfo_pointery()
# переход из Tk-координат в координаты turtle
cx = (cx - screen.window_width() // 2)
cy = (screen.window_height() // 2 - cy)
# вектор к курсору
dx = cx - x
dy = cy - y
# двигаем ящерицу с некоторой скоростью
if dx != 0 or dy != 0:
angle = lizard.towards(cx, cy)
lizard.setheading(angle)
new_x = x + dx * SPEED
new_y = y + dy * SPEED
lizard.goto(new_x, new_y)
# обновляем экран
screen.update()
# повторяем через небольшой интервал
screen.ontimer(move_to_cursor, 20)
# первоначальное положение ящерицы в центре
lizard.goto(0, 0)
# запускаем отслеживание
move_to_cursor()
# чтобы окно не закрывалось
screen.exitonclick()