我一直在做一个练习,我们需要用另一个函数的大小属性创建一个毛毛虫。在下面的代码中,我添加了一个介于 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
提交
取消