为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现一个类?

如何实现一个类?

GCT1015 2023-06-13 15:27:10
我一直在做一个练习,我们需要用另一个函数的大小属性创建一个毛毛虫。在下面的代码中,我添加了一个介于 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])

这只是一种方式,我不知道你想要它看起来如何。


查看完整回答
反对 回复 2023-06-13
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信