我的代码给我一个元组错误,我不知道为什么

my code gives me a tuple error and i dont know why

主要代码

  1. 我真的不知道为什么我总是收到元组错误代码看起来不错
  2. 目前只是我游戏的循环部分,就是这样
        import pygame 
    
    
    # important window variables
    WIDTH, HEIGHT = 900, 500
    
    WIN = WIDTH, HEIGHT
    
    SCREEN = pygame.display.set_mode((WIN))
    
    pygame.display.set_caption('SPACE GAME')
    
    WHITE = (0,0,0)
    
    # display function (what shows up on the screen)
    def display():
        WIN.fill(WHITE)
        pygame.display.update()
    
    
    # main function/loop function
    def main():
        run = True
        while run:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    run = False
    
            display()
        pygame.quit()
    
    
    if __name__ == '__main__':
        main()


我相信这就是问题所在(尽管没有真正的错误回溯,我可能是错的。)

基本问题是您将 WIN 的值设置为元组 IE。 WIN = BASE, HEIGHT

然后在 display() 函数中,执行以下操作:

  WIN.fill(WHITE)

这就是我认为的错误。 WIN 作为一个元组, 没有 fill 方法。我想你想用的是 SCREEN.fill(WHITE)

我看了一下文档(因为我不知道 pygame), 它确认:pygame.display.set_mode((WIN)) returns 一个 Surface 对象 有一个 fill() 方法。

所以,总而言之:


    # important window variables
    WIDTH, HEIGHT = 900, 500
    
    WIN = WIDTH, HEIGHT
    
    SCREEN = pygame.display.set_mode((WIN))
    
    pygame.display.set_caption('SPACE GAME')
    
    WHITE = (0,0,0)
    
    # display function (what shows up on the screen)
    def display():
        SCREEN.fill(WHITE)
        pygame.display.update()
    
    
    # main function/loop function
    def main():
        run = True
        while run:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    run = False
    
            display()
        pygame.quit()
    
    
    if __name__ == '__main__':
        main()