2014-07-08 7 views
1

J'essaie de déplacer deux objets en même temps dans des graphiques python (Cela semble se rapporter à John Zelle's graphics.py), puis répétez le mouvement dans une boucle. Cependant quand j'essaye de le boucler, les formes disparaissent. Comment puis-je réparer cela?Déplacer des objets graphics.py Python

def main(): 
    win = GraphWin('Lab Four', 400, 400) 
    c = Circle(Point(100, 50), 40) 
    c.draw(win) 
    c.setFill('red') 
    s = Rectangle(Point(300, 300), Point(350, 350)) 
    s.draw(win) 
    s.setFill('blue') 
    s.getCenter() 
    while not c.getCenter() == Circle(Point(400, 50), 40): 
     c.move(10, 0) 
     s.move(-10, 0) 
    win.getMouse 
    while not (win.checkMouse()): 
     continue 
    win.close() 
+0

Quelle boîte à outils graphique utilisez-vous? –

Répondre

0

Il y a quelques problème évident avec votre code: vous comparez le centre objet Point du cercle sur un objet cercle - vous devez Compaoré à un objet Point; vous avez omis les parenthèses dans votre appel win.getMouse(). La reprise ci-dessous fixe ces questions:

from graphics import * 

WIDTH, HEIGHT = 400, 400 
RADIUS = 40 

def main(): 
    win = GraphWin('Lab Four', WIDTH, HEIGHT) 

    c = Circle(Point(100, 50), RADIUS) 
    c.draw(win) 
    c.setFill('red') 

    s = Rectangle(Point(300, 300), Point(350, 350)) 
    s.draw(win) 
    s.setFill('blue') 

    while c.getCenter().getX() < WIDTH - RADIUS: 
     c.move(10, 0) 
     s.move(-10, 0) 

    win.getMouse() 
    win.close() 

main() 

Au lieu de comparer le centre Point avec un point, j'ai simplement vérifié la position X, car il se déplace horizontalement.

Questions connexes