乌龟鼠标goto函数返回NoneType

时间:2018-10-30 09:56:16

标签: python turtle-graphics

我正在写一个小游戏,当单击它时,它需要鼠标光标的(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语句中出现错误。有什么方法可以等待第二次输入(当用户实际单击屏幕上的某个位置时)?

1 个答案:

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