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()
为什么我的矩形没有移动任何人看到任何东西?而且我认为我不想使用睡眠,以防有人提出建议。
任何帮助表示赞赏,谢谢
答案 0 :(得分:2)
看起来你在Point和Integer之间有一个奇怪的交互。
就是这一行:
r=Rectange(Point(r.getP1()+1),(Point(r.getP2()+1)))
您正尝试将1添加到Point。
这可能没有按照您的预期进行 - 尝试重新编写,以便获得原始的P1 / P2值,然后根据需要增加特定的x / y。
此外,Rectangle拼写错误,您应该创建一个新的Rectangle并返回它而不是覆盖现有的Rectangle(也可能导致问题),您可以尝试通过添加打印来调试它(r.getP1 ()+“”+ r.getP2())在赋值之前和之后。
另一个附录:理想情况下,您的功能应该只有一个目的。 rectMaker似乎不只是制作矩形,而是重新绘制它们,尝试更改现有的矩形然后返回它。通常的游戏风格就像
def main():
load()
while(playing):
input()
update()
draw()
unload()