2014-11-06 21 views
0
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的新品牌(編程一般)。這是我們的第一項任務之一,編輯一個簡單的程序,從牆上彈出廣場。我們要添加一個圓,但是我無法弄清楚如何將它適合矩形的預先存在的字典結構。我收到以下錯誤,我是什麼沒有看到:pygames /繪畫圈,反彈牆壁

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) 

回答

0

A quick look at Pygame's documentation顯示您提供較少的參數超出預期。一般來說,這就是所有的Python告訴你什麼時候它說「TypeError:函數至少需要4個參數(給出3)」。

更多一點細節:在第32行中,由於錯誤跟蹤指定,導致問題的原因是字典條目'rect':pygame.draw.circle((300, 50), 20, 0,)。從我鏈接的文檔中,您應該能夠弄清楚這裏出了什麼問題。

另一個提示。既然你說你是一般的編程新手,你應該注意pygame.Rectpygame.draw.circle的參數有很大的不同:Rect需要所有原始Python值(「數字」),而circle需要特定的對象