错误:“pygame.Surface”对象不可调用

2024-09-30 22:12:48 发布

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

你好! 我正在为学年末制定一个计划。但“pygame.Surface”对象不可调用的著名问题出现了。我现在不知道哪里错了。 该方案:

def Setfenetre():

    #New window
    fenetre= pygame.display.set_mode((800, 464), FULLSCREEN)
    background=pygame.image.load("Ressources/Images/Set_window4.jpg").convert()
    fenetre.blit(background, (0,0))
    pygame.display.flip()

    #BoutonSOUND(ON/OFF)
    SOUND_area = pygame.Rect((280,55), (250,50))
    rect_surf = pygame.Surface(SOUND_area.size)
    rect_surf.set_alpha(0)

    #BoutonRETURN
    RETURN_area = pygame.Rect((315,165), (171,45))
    rect_surf = pygame.Surface(RETURN_area.size)
    rect_surf.set_alpha(0)

    #Son clic:
    soundClic= pygame.mixer.Sound("Ressources/Sons/Clic.wav")

    #SonON/OFF / Sorti de Setfenetre
    jeu=1
    while jeu:
        for event in pygame.event.get():
            if event.type == MOUSEBUTTONDOWN:
                if  SOUND_area.collidepoint(event.pos) or RETURN_area.collidepoint(event.pos):
                    if event.button== 1:
                        soundClic.play()
                if SOUND_area.collidepoint(event.pos):
                    if event.button== 1:
                        soundMainMenu.stop()
                if RETURN_area.collidepoint(event.pos):
                    if event.button== 1:
                        jeu=0
                        fenetre("MainMenu")
        fenetre.blit(rect_surf, RETURN_area)
        pygame.display.flip()
    pygame.quit()

Python告诉我这个错误:(TypeError:'pygame.Surface'对象不可调用) 附言: 我的pygame窗口不是init。因为它是在另一个名为“fenetre()”的函数中执行的

非常感谢您的回答


Tags: posrecteventreturnifdisplayareasurface
1条回答
网友
1楼 · 发布于 2024-09-30 22:12:48

必须为fenetre函数或fenetre曲面的本地实例使用不同的名称。曲面(fenetre=pygame.display.set_mode(…)“阴影”函数,因为它们具有相同的名称。
更改显示器表面variabel的名称及其每次使用:

fenetre= pygame.display.set_mode((800, 464), FULLSCREEN)

fenetre_surf = pygame.display.set_mode((800, 464), FULLSCREEN)

相关问题 更多 >