Haciendo que el rectángulo se mueva a través de la pantalla con el archivo de gráficos

from graphics import * def main(): win = GraphWin("Polygon", 500, 500) r= Rectangle(Point(10,500),Point(150,450)) r.draw(win) while r.getP1()<=450 is False: rectMaker(r) time.sleep(1) def rectMaker(r): r.undraw(win) r=Rectange(Point(r.getP1()+1),(Point(r.getP2()+1))) r.draw(win) return r #win.getMouse() main() 

¿Por qué mi rectángulo no mueve a nadie ver nada? Y no creo que deba usar el sueño en caso de que alguien lo sugiera.

Cualquier ayuda es apreciada por favor y gracias

Parece que estás teniendo una interacción extraña entre un punto y un entero.

Es decir, esta línea aquí:

 r=Rectange(Point(r.getP1()+1),(Point(r.getP2()+1))) 

Usted está tratando de agregar 1 a un punto.

Es probable que esto no esté haciendo lo que espera: intente volver a escribir esto para obtener los valores P1 / P2 originales y luego incremente la x / y específica según sea necesario.

Además, el rectángulo está mal escrito, probablemente debería crear un nuevo rectángulo y devolverlo en lugar de anular el existente (también puede causar problemas), y podría haber intentado depurar esto agregando una impresión (r.getP1 () + “” + r.getP2 ()) antes y después de la asignación.

Otro addendum: sus funciones idealmente deberían tener un solo propósito. rectMaker parece no solo hacer rectangularjs, sino que debe volver a dibujarlos, tratar de cambiar un rectángulo existente y luego devolverlo. El estilo habitual de los juegos es algo así como

 def main(): load() while(playing): input() update() draw() unload()