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

TypeError:参数1必须是pygame.Surface,而不是类型

司空俊雄
2023-03-14

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

mina = pygame.image.load('mina.png')
class mina():
    def __init__(self, x , y):
        self.x = x
        self.y = y
        self.eksplozija = False
    def naris(self):
        screen.blit(mina, (self.x, self.y))
igralec = podmornica(150, 300, 10)
eksploziv = mina(700, 350)
metki = []
clock = pygame.time.Clock()
def grafika():
    clock.tick(60)
    screen.blit(ozadje, (0,0))
    igralec.naris()
    #line, that doesn't work:
    eksploziv.naris()
    for metek in metki:
        metek.naris(screen)
    pygame.display.flip()

共有1个答案

田瀚
2023-03-14

变量mina和类mina具有相同的名称。类mina对变量mina进行阴影处理。您需要重命名其中一个。我建议将calssmina重命名为mina,因为Python类使用CapWords约定(PEP 8——Python代码样式指南):

类mina():

class Mina():

eksploziv=mina(700350)

eksploziv = Mina(700, 350)
 类似资料: