获取Python Turtle返回鼠标单击的坐标

时间:2018-10-15 20:18:32

标签: python turtle-graphics

如何让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制作任何类型的游戏,谢谢。

1 个答案:

答案 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()