我正在写一个小游戏,它需要鼠标光标点击时的(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
语句中出现错误。有没有办法让我等待第二次输入(当用户真正点击屏幕上的某个地方时)?
发布于 2018-10-30 18:48:07
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)
https://stackoverflow.com/questions/53061640
复制相似问题