pygame 模块 - window 立即关闭

pygame module - window instantly is closing

我已经检查了其他主题并且我已经测试了这些解决方案但没有任何 pos 结果。我需要用问题刷新主题。我哪里出错了?

import pygame

pygame.init()

WIDTH, HEIGHT = 1000, 800
window = pygame.display.set_mode((WIDTH, HEIGHT))

def run(window, width, height):
    run = True
    clock = pygame.time.Clock()
    fps = 60

    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
                break

        clock.tick(fps)
    
        pygame.quit()

if __name__ == "_main_":
    run(window, WIDTH, HEIGHT)

退出调用不应该在 while 块上,而应该在它之后。否则它会立即退出。 因此:

def run(window, width, height):
    run = True
    clock = pygame.time.Clock()
    fps = 60

    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
                break

        clock.tick(fps)
    
    pygame.quit()

main 周围的单下划线更改为双下划线:

if __name__ == "_main_":

应该是

if __name__ == "__main__":

这是Indentation的事情。 window 正在关闭,因为您正在应用程序循环中调用 pygame.quit()。您需要在应用程序循环后调用 pygame.quit()
top level code environment 的名称是 "__main__",但不是 "_main_"

def run(window, width, height):
    run = True
    clock = pygame.time.Clock()
    fps = 60

    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False

        clock.tick(fps)
    
    # INDETATION
    #<--|
    pygame.quit()

if __name__ == "__main__":           # <-- 
    run(window, WIDTH, HEIGHT)