pygame.sprite выдает ошибку RecursionError: максимальная глубина рекурсии превышена при вызове объекта Python

#pygame

Вопрос:

Код моей игры-простая платформенная игра, но при попытке добавить спрайты она выдает ошибку с RecursionError: maximum recursion depth exceeded while calling a Python object

Я следую примерному руководству и пытаюсь изменить код для себя, я совсем новичок в кодировании, так может ли кто-нибудь помочь решить эту проблему?

Я видел, как люди превращали рекурсию в цикл, но я не понимаю, что это такое.

 class Enemy(pygame.sprite.Sprite()):
    def __init__(self, x, y):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load('image/spida.png')
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
 

вот фрагмент кода, который выдает мне ошибку, конкретная часть заключается pygame.sprite.Sprite.__init__(self) в том, что он выделяет self часть, говоря Expected type 'Sprite', got 'Enemy' instead (это в части кода «Ошибки проекта»)

Комментарии:

1. Удалить () в class Enemy(pygame.sprite.Sprite()): . Так и должно быть class Enemy(pygame.sprite.Sprite): . Не уверен, что это то, что вызывает вашу проблему, хотя. Попробуйте и посмотрите, исправит ли это

2. Это опечатка: pygame.sprite.Sprite() создает новый экземпляр. class Enemy(pygame.sprite.Sprite()): должен быть class Enemy(pygame.sprite.Sprite):

3. @user16038533 ах, большое спасибо, я столько раз пытался это исправить. Большое спасибо

Ответ №1:

В коде есть опечатка pygame.sprite.Sprite() , которая создает новый объект экземпляра. Изменить:

class Enemy(pygame.sprite.Sprite()) :

 class Enemy(pygame.sprite.Sprite)