все шло хорошо
Вы знаете, что на самом деле дела идут плохо, когда вы импортируете один и тот же модуль тремя разными способами:
import turtle
from turtle import *
from turtle import Turtle, Screen
xy просто не изменится!
Это меняется , но в вашем коде нет ничего, что могло бы отобразить это изменение.Единственное утверждение, которое смотрит на xy
:
if xy == 1:
textinput("test","dis is 1")
, завершается до того, как xy
когда-либо изменится, и никогда больше не будет выполнено.Давайте добавим некоторый код для отображения xy
в окне черепахи, чтобы вы могли видеть, что ваши клики дают эффект.Пока мы это делаем, мы очистим ваш код:
from turtle import *
def circle6():
fillcolor("white")
for _ in range(6):
begin_fill()
circle(40)
end_fill()
forward(90)
def getCoords(x, y):
global xy
if y < 252:
if x < -316:
xy = 1
elif -316 < x < -187:
xy = 2
elif -187 < x < -59:
xy = 3
elif -59 < x < 65:
xy = 4
elif 65 < x < 194:
xy = 5
elif 194 < x < 327:
xy = 6
elif 327 < x < 453:
xy = 7
marker.undo()
marker.write("xy = {}".format(xy), xy, font=('Arial', 18, 'normal'))
xy = 0
wn = Screen()
wn.setup(width=1.0, height=1.0)
marker = Turtle(visible=False)
marker.penup()
marker.goto(0, 300)
marker.write("xy = {}".format(xy), font=('Arial', 18, 'normal'))
hideturtle()
speed('fastest')
penup()
goto(-450, 250)
right(90)
begin_fill()
forward(580)
left(90)
forward(450 * 2)
left(90)
forward(580)
left(90)
forward(450 * 2)
end_fill()
left(90)
for distance in range(25, 815, 130):
goto(-450, 250)
left(90)
forward(distance)
right(90)
forward(60)
circle6()
wn.onscreenclick(getCoords)
wn.mainloop()