应该在按下圆圈后结束onclick
,但还是会继续。
from turtle import *
l=0
h=True
circle(5)
def m(x,y):
global l
global h
goto(x,y)
if((x>=0 and x<=10) and (y>=0 and y<=10)):
h=False
goto(0,0)
def r():
onscreenclick(m)
if h:
ontimer(r(),1000)
mainloop()
答案 0 :(得分:0)
我不知道您的代码应该做什么。在标题上,单击点将结束程序。从文本中单击点应会关闭onscreenclick()
事件处理程序,但您没有可见的方法来验证是否已发生。
假设以结束程序为目标,那么我们可以按照以下方法重新制作程序:
from turtle import *
def m(x, y):
if -5 <= x <= 5 and -5 <= y <= 5:
bye() # exit from mainloop()
hideturtle()
penup()
dot(10) # use dot (diameter) instead of circle (radius) as it's centered
goto(100, 100) # get the turtle away from center
onscreenclick(m)
mainloop()
但是,如果您的行为是您的目标,我们可以通过使乌龟本身成为圆点并在乌龟而不是屏幕上设置onclick()
事件来简化代码:
from turtle import *
def m(x, y):
bye() # exit from mainloop()
shape('circle')
shapesize(0.5)
onclick(m)
mainloop()
如果我完全错过了问题的要点,请编辑您的问题以阐明程序的行为和目标。