我正在写一个小游戏,当单击它时,它需要鼠标光标的(x,y)坐标。我有两个函数,第一个获取坐标,第二个返回基于坐标的值。但是,当我运行屏幕上的click(goto)时,它将自动返回None
,其余代码将中断。这是我到目前为止的内容:
def goto(x,y):
xx = x
yy = y
print(xx,yy) #used to check coords are working
return xx,yy
def selector():
turtle.onscreenclick(goto)
if xx > 0 & yy > 200:
#do stuff here
问题在于,当调用goto
并返回None
时会触发,这会导致if
语句中出现错误。有什么方法可以等待第二次输入(当用户实际单击屏幕上的某个位置时)?
答案 0 :(得分:0)
onscreenclick
确实不返回任何内容-这样做没有多大意义,因为它的参数是一个回调函数,仅当用户实际单击屏幕上的某个位置时才执行(现在这不是同步调用) )。
您要在此处将逻辑移至回调(goto
)函数:
def goto(x,y):
xx = x
yy = y
# NB : in python, `&` is the 'binary and' operator,
# the logical 'and' operator is named `and`
if xx > 0 and yy > 200:
#do stuff here
def selector():
turtle.onscreenclick(goto)