当前位置: 首页 > 知识库问答 >
问题:

在super()调用中,参数1必须是类型,而不是pygame.surface

水昊阳
2023-03-14

我正在尝试使用Python、pygame和OOP从头开始构建一个乒乓球游戏(我知道,这不是使用OOP的最佳语言)。当前具有以下类结构:

游戏对象(对象)| |球(游戏对象)| |桨(游戏对象)

注:球扩展游戏对象

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)

当我试图创建一个球,一个错误显示:

超级(gameDisplay)类型错误:超级()参数1必须是类型,而不是pyplay。表面

有人能帮我吗?

共有1个答案

王航
2023-03-14

您没有正确使用超级

super()

这是在python3中,因为您不是从对象继承的

有关Super的更多信息,请参阅了解Python的Super()与__init__()方法

 类似资料:
  • 我正在用python制作一个潜艇游戏,但当我试图运行它时,解释器给了我一个非常奇怪的错误:“TypeError:参数1必须是pygame.Surface,而不是type。”我试图在网上搜索我的答案,但这似乎不是很常见的错误。我也试着自己去发现错误,但我觉得一切都很好。下面是我认为错误所在的部分代码:

  • 我正在编写一个小型python游戏,我的一些代码似乎不起作用。看一看: 是啊......所以错误是:

  • 我有一个问题,我做了一个乒乓游戏,但我有一个问题,把分数打印到pyplay窗口。 我得到错误'TypeError:参数1必须是pygame.Surface,而不是str 我在文本中输入了blit,但出现了一个错误。我知道代码乱七八糟,我稍后会修复它

  • 我无法理解Stackoverflow中的其他问题。当圆圈向屏幕末端移动时,它会向相反方向移动。 发出错误消息而未执行。 screen.blit(圆圈,[x,y]) 类型错误:参数1必须是pygame.Surface,而不是pygame.Rect 有什么问题吗?

  • 我一直在遵循的python flappy鸟AI教程从techwith timm,我得到了这个错误; 我的代码是这样的 我读过其他文章也有同样的问题,我理解,但是不是像那样的列表。我不知道该怎么办。 我试着做来获取“列表”的第一个图像,但它说对象不是列表。为什么?