使矩形在图形文件的屏幕上移动

时间:2013-11-21 00:28:37

标签: python pygame

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

为什么我的矩形没有移动任何人看到任何东西?而且我认为我不想使用睡眠,以防有人提出建议。

任何帮助表示赞赏,谢谢

1 个答案:

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