簡體   English   中英

如何用一行編寫的多個pygame事件退出游戲循環?

[英]How to exit game loop with several pygame events written in one line?

我為模糊的標題表示歉意,但是本質上,我想使用pygame以幾種不同的方式退出游戲循環。 給定以下代碼,我要避免兩次編寫“ running = False”。 我知道這是非常小的事情,但是如果可能的話,我想用更少的行“ and”和“ or”來寫“ if”條件。

running = True
while running:
    for e in pg.event.get():
        if e.type == pg.QUIT:
            running = False
        if e.type == pg.KEYDOWN:
            if e.key == pg.K_ESCAPE:
                running = False
pg.quit()

這是我第一次問一個問題,所以請問這是不是太含糊或只是一個愚蠢的問題。 還是要謝謝你!

使用一些好的老布爾代數,並用括號將其分組!

我認為這完全相同,但是您可能需要仔細檢查:

while True:
    for e in pg.event.get():
        if e.type == pg.QUIT or (e.type == pg.KEYDOWN and e.key == pg.K_ESCAPE):
            pg.quit()

如果目標是在任何一種情況下退出,那么它將起作用:

running = True
while running:
    for e in pg.event.get():
        if e.type == pg.QUIT or  (e.type == pg.KEYDOWN and e.key == pg.K_ESCAPE):
            running = False

pg.quit()

您可以使用以下方法進一步縮短它:

while True:
    for e in pg.event.get():
        if e.type == pg.QUIT or  (e.type == pg.KEYDOWN and e.key == pg.K_ESCAPE):
            break

pg.quit()

暫無
暫無

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

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