我一直在做一個練習,我們需要用另一個函數的大小屬性創建一個毛毛蟲。在下面的代碼中,我添加了一個介于 0 和 3 之間的大小屬性。class Caterpillar: def __init__(self): self.size = random.randrange(0, 3) x = random.randrange(50, 950) y = random.randrange(50, 950) self.xcoord = x self.ycoord = y但是,在下面的這段代碼中,當我嘗試在此行中添加大小時pygame.draw.ellipse(screen, red, [x, y, size, 40, 45]),但出現錯誤。def draw_critter(self, screen): x = self.xcoord y = self.ycoord size = self.size pygame.draw.ellipse(screen, red, [x, y, 40, 45]) pygame.draw.ellipse(screen, black, [x + 6, y + 10, 10, 15]) pygame.draw.ellipse(screen, black, [x + 24, y + 10, 10, 15]) pygame.draw.line(screen, black, (x + 11, y + 1), (x + 9, y - 10), 3) pygame.draw.line(screen, black, (x + 25, y + 1), (x + 26, y - 10), 3)我不明白為什么會出現此錯誤File "D:/UniFiles/Sem/159/critters.py", line 53, in <module> critter.draw_critter(screen) File "D:\UniFiles\Sem\159\mycritters.py", line 27, in draw_critter pygame.draw.ellipse(screen, red, [x, y, size, 40, 45])TypeError: Invalid recstyle argument我不確定我是否真的了解課堂的運作方式。有人可以告訴我一個例子,說明我如何實現 draw_critter 函數來創建整個毛毛蟲而不僅僅是頭部。
1 回答

ABOUTYOU
TA貢獻1812條經驗 獲得超5個贊
ellipse()
期望:
pygame.draw.ellipse() ????draw?an?ellipse ????ellipse(surface,?color,?rect)?->?Rect ????ellipse(surface,?color,?rect,?width=0)?->?Rect
什么是矩形?它期望這樣:
pygame.Rect ????pygame?object?for?storing?rectangular?coordinates ????Rect(left,?top,?width,?height)?->?Rect ????Rect((left,?top),?(width,?height))?->?Rect ????Rect(object)?->?Rect
它沒有在任何地方提到尺寸參數。
我不太確定你想做什么,但聽起來你想要一個長橢圓來表示毛毛蟲?那么也許你可以畫一些size
橢圓并將它們隔開一點。
例如:
for?s?in?range(self.size): ????pygame.draw.ellipse(screen,?red,?[x?+?s*10,?y,?40,?45])
這只是一種方式,我不知道你想要它看起來如何。
添加回答
舉報
0/150
提交
取消