Piggles The Pig
Piggles The Pig

Reputation: 43

How to make a turtle object look at where the mouse has clicked

I want to write a turtle program where the turtle goes to wherever you click. So far I have this:

from turtle import *
screen = Screen()
turtle = Turtle()
screen.onscreenclick(turtle.goto)

But the problem is the turtle object just stays facing in the same direction. I want to somehow make it look towards where it's going. How can I achieve this?

Upvotes: 2

Views: 1504

Answers (1)

cdlane
cdlane

Reputation: 41872

This will do what you describe:

import turtle

screen = turtle.Screen()
turtle = turtle.Turtle()

def turtle_headto(x, y):
    turtle.left(turtle.towards(x, y) - turtle.heading())
    turtle.goto(x, y)

screen.onscreenclick(turtle_headto)

screen.mainloop()

But the motion of the arrow/turtle isn't always optimal, i.e. sometimes it spins the long way 'round, but that's something for you to optimize (e.g. when to call left() and when to call right())

Upvotes: 7

Related Questions