繁体   English   中英

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)

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

if __name__ == "_main_":

它应该是

if __name__ == "__main__":

quit 调用不应该在 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()

这是Indentation的问题。 window 正在关闭,因为您在应用程序循环中调用pygame.quit() 您需要在应用程序循环后调用pygame.quit()
顶级代码环境的名称是"__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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM