Python 如何使海龟对象看到鼠标单击的位置
我想写一个Python 如何使海龟对象看到鼠标单击的位置,python,turtle-graphics,Python,Turtle Graphics,我想写一个turtle程序,海龟可以到你点击的任何地方。到目前为止,我有: from turtle import * screen = Screen() turtle = Turtle() screen.onscreenclick(turtle.goto) 但问题是海龟的目标只是保持朝向同一个方向。我想让它朝着它要去的地方看。我如何才能做到这一点?这将符合您的描述: import turtle screen = turtle.Screen() turtle = turtle.Turtle()
turtle
程序,海龟可以到你点击的任何地方。到目前为止,我有:
from turtle import *
screen = Screen()
turtle = Turtle()
screen.onscreenclick(turtle.goto)
但问题是海龟的目标只是保持朝向同一个方向。我想让它朝着它要去的地方看。我如何才能做到这一点?这将符合您的描述:
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()
但是箭头/乌龟的运动并不总是最佳的,也就是说,有时它会旋转很长一段时间,但这是需要优化的(例如,何时调用
left()
以及何时调用right()
)三角函数?使用当前位置基线和单击位置之间的参考角度。然后用三角法计算角度,然后旋转海龟。更好的建议+1目前无法测试它,但从声音上看,这将起作用。好的,我测试了它,它起作用了,然后我做了一些更改,以使我的游戏更进一步。现在它不能正常工作了import turtle s=turtle.Screen()t=turtle.turtle()t2=turtle.turtle()t.up()t2.shape('turtle')def turtle_headto(x,y):t.left(turtle.towards)(x,y)-turtle.heading())t.goto(x,y)t2.up()t2.left(180)t2.goto(50,50)s.onscreen单击(turtle_headto)s.mainloop()
尝试更改t.left(turtle.towards(x,y)-turtle.heading())
改为阅读t.left(t.towards(x,y)-t.heading())
,看看这是否有帮助。如有任何其他问题,请发布新问题!