如何让Python Turtle返回鼠标单击的坐标,以便可以在其他函数中使用它?我有以下代码:
import turtle as t
def main():
while True:
t.onscreenclick(t.goto)
x=t.xcor()
y=t.ycor()
print(str(x) + ', ' + str(y))
t.mainloop()
main()
我正在制作一个游戏,希望您可以在想要去的屏幕上单击,因此,我希望能够使用t.onscreenclick()给我坐标单击鼠标的位置,并且能够将这些坐标发送到另一个函数,但是无论我单击多少次,此代码都只会返回(0.0,0.0),而不会返回其他坐标。
任何帮助将不胜感激,这是我第一次尝试使用python制作任何类型的游戏,谢谢。
答案 0 :(得分:0)
您完全误解了海龟事件处理。我建议您(重新)阅读文档,然后再继续。尽管Turtle的介绍以t.onscreenclick(t.goto)
为例,但是它的处理程序非常嘈杂,因此最好自己编写一个先禁用处理程序,执行goto()
并重新启用处理程序的处理程序。以下是我认为您要尝试实施的内容:
from turtle import Screen, Turtle
def my_handler(x, y):
screen.onscreenclick(None) # disable handler inside hander
turtle.goto(x, y)
print(turtle.position())
screen.onscreenclick(my_handler)
turtle = Turtle()
screen = Screen()
screen.onscreenclick(my_handler)
screen.mainloop()