Функция перехода черепашьей мыши, возвращающая NoneType - PullRequest
0 голосов
/ 30 октября 2018

Я пишу небольшую игру, которая требует (x, y) координаты курсора мыши при нажатии. У меня есть две функции, первая получает координаты, а вторая возвращает значение на основе координат. Однако, когда я запускаю щелчок на экране (переход), он автоматически возвращает 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 голосов
/ 30 октября 2018

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)
...