簡體   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