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

2024-09-30 10:36:19 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Tags: self游戏def错误screenpygame潜艇clock
1条回答
网友
1楼 · 发布于 2024-09-30 10:36:19

变量mina和类mina具有相同的名称。类mina隐藏变量mina。您需要重命名其中一个。我建议将calssmina重命名为Mina,因为Python类使用大写字母约定(PEP 8 Style Guide for Python Code):

class mina():

class Mina():

eksploziv = mina(700, 350)

eksploziv = Mina(700, 350)

相关问题 更多 >

    热门问题