Получить Python Turtle, чтобы вернуть координаты щелчка мыши - PullRequest
0 голосов
/ 15 октября 2018

Как заставить Python Turtle возвращать координаты щелчка мыши, чтобы его можно было использовать в другой функции?У меня есть этот код:

import turtle as t

def main():
    while True:
        t.onscreenclick(t.goto)
        x=t.xcor()
        y=t.ycor()
        print(str(x) + ', ' + str(y))
        t.mainloop()

 main()

Я делаю игру, в которой я хочу, чтобы вы могли нажимать на экран, куда вы хотите перейти, поэтому для этого я надеялся использоватьt.onscreenclick (), чтобы дать мне координаты места, где была нажата мышь, и возможность отправлять эти координаты в другую функцию, но этот код возвращает только (0.0, 0.0) и никаких других координат, независимо от того, сколько раз я нажимаю.

Буду признателен за любую помощь, это моя первая попытка создать игру с использованием python, спасибо.

1 Ответ

0 голосов
/ 16 октября 2018

Вы совершенно неправильно поняли обработку событий черепахи.Я предлагаю вам (пере) прочитать документацию, прежде чем продолжить.Хотя введение в turtle использует t.onscreenclick(t.goto) в качестве примера, это очень шумный обработчик, поэтому вам лучше написать свой собственный, который сначала отключает обработчик, выполняет goto() и снова включает обработчик.Вот то, что, как я полагаю, вы пытаетесь реализовать:

from turtle import Screen, Turtle

def my_handler(x, y):
    screen.onscreenclick(None)  # disable handler inside hander
    turtle.goto(x, y)
    print(turtle.position())
    screen.onscreenclick(my_handler)

turtle = Turtle()

screen = Screen()

screen.onscreenclick(my_handler)

screen.mainloop()
...