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.movie fehlt
  • Python-Terminal-Fenster auftauchen bei pygame app run [duplicate]
  • Windows XP, Python 2.7 und Pygame
  • Pygame stürzt ab, wenn die Füllung (Farbe) verwendet wird
  • Warum verhalten sich die Bälle so, wie sie es tun?
  • Wie füge ich eine Zeile als Sprite in Pygame hinzu?
  • 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.