Das Rechteck bewegt sich über den Bildschirm mit Grafikdatei

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

Warum ist mein Rechteck, das niemanden bewegt? Und ich glaube nicht, dass ich vermutlich schlafen soll, falls jemand das vorschlagen würde.

Jede Hilfe wird geschätzt bitte und danke

  • Pygame-Wie erstelle ich ein Bild mit einem anderen
  • Ist pyGame do 3d?
  • Aktualisieren eines Teils einer Oberfläche in Python oder transparenten Oberflächen
  • Wie kann ich zwischen zwei Punkten etwas skalieren?
  • PyGame in einem Thread
  • Fehler im Pygame "Hello World" Programm Mac OS 10.8
  • One Solution collect form web for “Das Rechteck bewegt sich über den Bildschirm mit Grafikdatei”

    Es sieht so aus, als hättest du eine merkwürdige Wechselwirkung zwischen einem Punkt und einem Integer.

    Namentlich diese Zeile hier:

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

    Sie versuchen, 1 zu einem Punkt hinzuzufügen.

    Dies ist wahrscheinlich nicht tun, was Sie es erwarten – versuchen Sie neu zu schreiben, so dass Sie die ursprünglichen P1 / P2 Werte erhalten und dann erhöhen die spezifischen x / y, wie nötig.

    Darüber hinaus wird Rectangle falsch geschrieben, sollten Sie wahrscheinlich ein neues Rectangle erstellen und es zurückgeben, anstatt das bestehende zu überschreiben (kann auch Probleme verursachen), und Sie könnten versucht haben, dies zu debuggen, indem Sie einen Druck hinzufügen (r.getP1 () + "" + R.getP2 ()) vor und nach der Zuordnung.

    Ein weiteres Addendum: Ihre Funktionen sollten idealerweise nur einen Zweck haben. RectMaker scheint nicht nur Rechtecke zu machen, sondern sie neu zu zeichnen, versuchen, ein vorhandenes Rechteck zu ändern und dann zurückzugeben. Der übliche Stil für Spiele ist so etwas wie

     def main(): load() while(playing): input() update() draw() unload() 
    Python ist die beste Programmiersprache der Welt.