簡體   English   中英

如何在pygame的if函數中暫停代碼?

[英]How do I pause code in an if function in pygame?

在檢查其他內容之前,如何使代碼停止片刻? (我是新來的代碼)

if BonusTime==True and Drop==True:               
    if event.type == pygame.MOUSEBUTTONDOWN:
        window.blit(Fired,(mouseX-12,mouseY-12))
        Cankill=True
        #I want it to delay here
        Cankill=False

鼠標后面有一個十字線,當我單擊它時會觸發。 問題是,您只需要按住鼠標並將十字准線放在一個位置即可。 每當敵人走進十字准線時,他們就會死亡。 我需要它,所以即使您握住它也只會發射一次。 我計划使其延遲if語句,將“ Cankill”設置為true,然后等待一秒鍾,等待之后,應將“ Cankill”設置為false。 我已經瀏覽了很多與此類似的其他人的問題,但沒有發現我能理解的東西。 因此,如果可以的話,請幫助我找出如何以我需要的方式延遲它。

“暫停”不是您想要的-如果這樣做,您的游戲將凍結,並且什么都不會移動(因為您使用OS鼠標指針,所以它可能會移動)。

無論如何,在游戲內部“暫停”的函數是pygame.time.wait(1000) -該數字以毫秒為單位。

您實際需要的是記下單擊的時間,繼續游戲,並且在經過1秒后,將變量重置為其他狀態。

沿途:

last_trigger = 0
while True:
    # game updating code goes here (getting events, and such)
    ...
    if Cankill and pygame.time.get_ticks() - last_trigger > 1000:
        Cankill = False

    if event.type == pygame.MOUSEBUTTONDOWN:
        window.blit(Fired,(mouseX-12,mouseY-12))
        Cankill=True
        last_trigger = pygame.time.get_ticks()

“ get_ticks”調用返回自pygame初始化以來經過的毫秒數-對於這次的計時器很有用。

暫無
暫無

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

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