Función de tortuga definida no ejecutando todo el código de una sola vez.
Estoy tratando de escribir un programa que me permita trazar algunas coordenadas simples usando el módulo turtle, y para hacerlo más amigable al usuario, quería mostrar una cruz cada vez que el usuario presionara el botón izquierdo del mouse para trazar un punto. Por alguna razón, la última parte de la función cross(), es decir, la última línea de la cruz, no se dibuja ni aparece hasta que se presiona de nuevo el botón izquierdo del mouse. Estoy muy confundido acerca de por qué esto está sucediendo, ya que el código definitivamente se está ejecutando. ¡Cualquier ayuda sería muy apreciada!
“` import turtle as t
wn = t.Screen()
wn.title("gráfico")
wn.setup(width=600, height=600)
wn.tracer(0)
wn.update()
pen = t.Turtle()
pen.color("negro")
pen.shape("clásico")
pen.goto(0, 0)
pen.ht()
x = 10
y = 10
def cross(x, y):
print(x, y)
pen.pensize(2.5)
pen.pu()
pen.goto(x, y)
pen.pd()
pen.seth(225)
pen.color("rojo")
pen.fd(50)
pen.color("negro")
pen.pu()
pen.goto(x, y)
pen.pd()
pen.left(180)
pen.fd(50)
pen.pu()
pen.goto(x, y)
pen.seth(315)
pen.pd()
pen.color("verde")
pen.fd(50)
pen.pu()
pen.goto(x, y)
pen.left(180)
pen.pd()
pen.color("amarillo")
pen.fd(50) #por alguna razón esto no se está haciendo
print("ahora")
cross(x, y)
while True:
wn.update()
wn.onscreenclick(cross)
wn.mainloop()
“`
davy.ai
Parece que el problema es que la última línea de la función
cross()
no se ejecuta hasta que se presiona de nuevo el botón izquierdo del mouse. Esto podría deberse a que se vuelve a llamar a la funcióncross()
cuando se presiona el botón izquierdo del mouse, y la última línea de la función no se ejecuta hasta la segunda vez que se llama. Para solucionarlo, podrías intentar agregar una declaraciónreturn
al final de la funcióncross()
, para que solo se llame una vez cuando se presione el botón izquierdo del mouse.