从墙壁反弹的pygames /绘制圆圈

时间:2014-11-06 16:44:50

标签: python-3.x pygame

b1 = {'rect':pygame.Rect(300, 80, 50, 100), 'color':RED, 'dir':UPRIGHT}
b2 = {'rect':pygame.Rect(200, 200, 20, 20), 'color':GREEN, 'dir':UPLEFT}
b3 = {'rect':pygame.Rect(100, 150, 60, 60), 'color':BLUE, 'dir':DOWNLEFT}
b4 = {'rect':pygame.draw.circle((300, 50), 20, 0,), 'color':PURPLE, 'dir':DOWNRIGHT}
blocks = [b1, b2, b3]


# draw the block onto the surface
pygame.draw.rect(windowSurface, b['color'], b['rect'])
pygame.draw.circle(windowSurface, b['color'], (300, 50), 20, 0)

全新的pygames(一般编程)。这是我们的第一个作业之一,用于编辑一个简单的程序,可以从墙上弹回方块。我们要添加一个圆圈,但我无法弄清楚如何将其适合矩形的预先存在的dict结构。我收到以下错误,我没有看到:

Traceback (most recent call last):
  File "C:\Users\CA115\Downloads\animation1.py", line 32, in <module>
    b4 = {'rect':pygame.draw.circle((300, 50), 20, 0,), 'color':PURPLE, 'dir':DOWNRIGHT}
TypeError: function takes at least 4 arguments (3 given)

1 个答案:

答案 0 :(得分:0)

A quick look at Pygame's documentation表明您提供的参数少于预期。一般来说,所有Python都告诉你何时它说'#34; TypeError:function至少需要4个参数(3个给定)&#34;。

更多详细信息:在第32行中,正如您的错误跟踪指定的那样,导致问题的原因是字典条目'rect':pygame.draw.circle((300, 50), 20, 0,)。从我链接的文档中,你应该能够弄清楚这里出了什么问题。

另一个暗示。既然您说您不熟悉编程,那么您应该注意pygame.Rectpygame.draw.circle的参数有显着差异:Rect接受所有原始Python值(&#34) ;数字&#34;)而circle需要特定的对象