#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)