我有这堂课:
class Comet(pygame.sprite.Sprite):
def ___init___(self):
super().__init__()
self.image = pygame.Surface((100,250))
self.image.fill(cometL)
self.rect = self.image.get_rect()
self.rect.y = 800
self.rect.x = 100
def update(self):
self.rect.y -= 1+2*speed
def reset(self):
self.rect.x = randint(0,700)
self.rect.y = randint(1000,2000)
我试着在这里使用它:
comet1 = Comet()
comet1.rect.x = 100
comet1.rect.y = 800
comets.add(comet1)
但是当我这样做时,我收到了这个错误:
文件"",第36行,in comet1.rect.x = 100
属性错误:'彗星'对象没有属性' rect'
即使班级确实如此(我认为,我对班级来说还是新手)
答案 0 :(得分:3)
您对__init__
的定义是错误的。您使用了三个下划线(___init___
),因此在实例化类时不会调用此函数。
这意味着,self.rect = self.image.get_rect()
行未被调用,因此没有rect
属性。