簡體   English   中英

如何讓 window 在 pygame 中退出?

[英]how do i make a window quit in pygame?

我想在按下 esc 按鈕后關閉游戲。 我能怎么做? 我應該把它放在哪里? 我也發現了一些我無法解決的問題,所以如果你為我解決了我會很高興

這是代碼:

#Import Libraries
import pygame
import random

#PyGame Initialization
pygame.init()

#Images Variables
background = pygame.image.load('images/sfondo.png')
bird = pygame.image.load('images/uccello.png')
base = pygame.image.load('images/base.png')
gameover = pygame.image.load('images/gameover.png')
tube1 = pygame.image.load('images/tubo.png')
tube2 = pygame.transform.flip(tube1, False, True)

#Display Create
display = pygame.display.set_mode((288,512))
FPS = 60

#Define Functions
def draw_object():
    display.blit(background, (0,0))
    display.blit(bird, (birdx, birdy))

def display_update():
    pygame.display.update()
    pygame.time.Clock().tick(FPS)

def animations():
    global birdx, birdy, bird_vely
    birdx, birdy = 60, 150
    bird_vely = 0

#Move Control
animations()

while True:
    bird_vely += 1
    birdy += bird_vely
    for event in pygame.event.get():
        if ( event.type == pygame.KEYDOWN
             and event.key == pygame.K_UP):
            bird_vely = -10
        if event.type == pygame.QUIT:
            pygame.quit()
        draw_object()
        display_update()

好吧,您可以通過在代碼中實現以下代碼片段來做到這一點:

running = True
while running:
    # other code
    event = pygame.event.wait ()
    if event.type == pygame.QUIT:
         running = False  # Be interpreter friendly
pygame.quit()

確保在退出主 function 之前調用pygame.quit()

也可以參考這個線程Pygame 轉義鍵退出

QUIT事件發生時,您必須終止應用程序循環。 您已經實現了QUIT事件,但沒有終止循環。 添加變量run = True並在事件發生時設置run = False
要在按下ESC時終止游戲,您必須實現KEYDOWN事件。 KEDOWN事件發生並且event.key == pgame.K_ESC時設置run = False

run = True
while run:

    bird_vely += 1
    birdy += bird_vely
    for event in pygame.event.get():
        
        if event.type == pygame.QUIT:
            run = False

        elif event.type == pygame.KEYDOWN:
            
            if event.key == pgame.K_ESC:
                run = False

            elif event.key == pygame.K_UP:
                bird_vely = -10

    draw_object()
    display_update() 

pygame.quit()
exit()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM