Это должно примерно сделать то, что вы описываете. Одна черепаха контролируется пользователем, другая работает по таймеру и движется (в основном) независимо:
from turtle import Screen, Turtle
CURSOR_SIZE = 20
bc_x, bc_y = 400, 400
def move_gamer(x, y):
gamer.ondrag(None)
if -bc_x/2 < gamer.xcor() < bc_x/2 and -bc_y/2 < gamer.ycor() < bc_y/2:
gamer.goto(x, y)
gamer.ondrag(move_gamer)
def move_bot():
bot.setheading(bot.towards(gamer))
bot.forward(10)
screen.ontimer(move_bot, 100)
def ondrag_event(x, y):
move_gamer(x, y)
move_bot()
screen = Screen()
box = Turtle('square')
box.color('pink')
box.shapesize(bc_y / CURSOR_SIZE, bc_x / CURSOR_SIZE)
gamer = Turtle('circle')
gamer.penup()
gamer.goto(bc_x/3, bc_y/3)
bot = Turtle('turtle')
bot.penup()
bot.goto(-bc_x/3, -bc_y/3)
gamer.ondrag(move_gamer)
move_bot()
screen.mainloop()
Я бросил дополнительную черепаху, чтобы очертить арену - это можно сделать другими способами.