Я храню эту ошибку и не могу ее устранить.Игра запустится, и тогда мой корабль будет поражен чем-то, и появится эта ошибка.Я пытался удалить ошибочные строки, но это только вызывает больше проблем.
Я почти уверен, что в моем классе правильно определен «центр» ... Я не могу понять, что может быть не так.
Вот ошибка и код.
Любое понимание будет полезным!
Traceback (последний вызов был последним): Файл "ShipsAndAliens", строка 364в файле pow = Pow (hit.rect.center) "ShipsAndAliens.py", строка 209, в init self.rect.center = center AttributeError: 'builtin_function_or_method' объект не имеет атрибута 'center'
class Pow(pygame.sprite.Sprite):
def __init__(self,center):
pygame.sprite.Sprite.__init__(self)
self.type = random.choice(['shield','gun'])
self.image = powerup_images[self.type]
self.image.set_colorkey(BLACK)
self.rect = self.image.get_rect
self.rect.center = center #line 209
self.speedy = 5
Тогда в моем основном игровом цикле:
hits = pygame.sprite.spritecollide(player,mobs,True,pygame.sprite.collide_circle)
if hits:
for hit in hits:
player.shield -= 20
expl = Explosion(hit.rect.center,'sm')
all_sprites.add(expl)
if random.random () > .9:
pow = Pow(hit.rect.center) #line 364
Спасибо!