2013-11-21 45 views
0
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() 

为什么我的矩形不移动任何人看到任何东西?如果有人提出这个建议,我不认为我想睡觉。使图形文件在屏幕上移动矩形

任何帮助表示赞赏请和谢谢

回答

2

它看起来就像你有一个点和整数之间的相互作用奇。

即这条线的位置:

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

您正在尝试1添加到一个点。

这很可能不会达到您期望的效果 - 尝试重新编写此代码,以便获得原始的P1/P2值,然后根据需要增加特定的x/y。

此外,Rectangle拼写错误,您应该创建一个新的Rectangle并返回它,而不是覆盖现有的Rectangle(也可能会导致问题),并且您可能已经尝试通过添加打印(r。 getP1()+“”+ r.getP2())在赋值之前和之后。

另一个附录:您的功能理想情况下应该只有一个目的。 rectMaker似乎不只是制作矩形,而是重新绘制它们,尝试更改现有的矩形,然后将其返回。通常的游戏风格就像

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