Аргумент 1 должен быть типом, а не pygame.surface при вызове super () - PullRequest
1 голос
/ 07 мая 2020

Я пытаюсь создать игру в понг с нуля, используя Python, pygame и OOP (я знаю, что это не лучший язык для использования OOP). в настоящее время имеют следующую структуру классов:

gameObject (object) || Мяч (gameObject) || Paddle (gameObject)

примечание: Ball расширяет gameObject

class gameObject:

def __init__(self, gameDisplay):
    (self.screenwidth, self.screenheight) = gameDisplay.get_size()
    self.gameDisplay = gameDisplay


class Ball(gameObject):

def __init__(self,x,y,r,speed,a, gameDisplay):
    super(gameDisplay)
    self.x = int(x)
    self.y = int(y)
    self.r = int(r)
    self.a = int(a)
    self.speed = speed
    self.xspeed = self.speed * math.cos(self.a)
    self.yspeed = self.speed * math.sin(self.a)

Когда я пытался создать мяч, появляется ошибка:

super (gameDisplay) TypeError: super () аргумент 1 должен быть типом, а не pygame. Поверхность

может ли кто-нибудь мне в этом помочь?

1 Ответ

1 голос
/ 07 мая 2020

Вы неправильно используете super.

super().__init__(gameDisplay)

Это в python3, так как вы не наследуете от Object Я предположил python3

Для получения дополнительной информации о super см. Этот Понимание Python super () с методами __init __ ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...