簡體   English   中英

Python:睡眠方法

[英]Python: Sleep methods

我知道這個論壇在技術上已經“提出了”,但是這個問題是基於一個我找不到的不同概念。

在使用time.sleep(無論如何)時,它顯然會休眠,我明白了,但是在使用Pygame時,它將鎖定程序。 除了不鎖定pygame的輸入外,是否有任何真正的方法在代碼中使用睡眠或暫停? 我試過了;

time.sleep
pygame.wait and
pygame.delay

這些都做完全相同的事情。 我正在為計算機科學課開發一款游戲,該游戲涉及一張由我擁有的13張照片組成的小動畫,但是略有不同,但是當間隔播放0.12秒時,它看起來就不錯了,可惜整個窗口被凍結了語句使它跳過並看起來非常糟糕。

多虧有誰能弄清楚這個謎。

我認為您可能想嘗試使用此處顯示的方法。

我的意思是一個例子:

class Unit():
    def __init__(self):
        self.last = pygame.time.get_ticks()
        self.cooldown = 300    

    def fire(self):
        # fire gun, only if cooldown has been 0.3 seconds since last
        now = pygame.time.get_ticks()
        if now - self.last >= self.cooldown:
            self.last = now
            spawn_bullet()

注意,他使用pygame.time.get_ticks()檢查變量是否小於該變量,如果小於,則傳遞if語句並生成項目符號。

下面是查看此概念的一種更簡單的方法

curtime = pygame.time.get_ticks() + 10  # the 10 is what we add to make it sleep

while True:  # Create a loop that checks its value each step
    if curtime < pygame.time.get_ticks():  # check if curtime is less than get_ticks()
        print("Sleep is over now!")
        break  # exit the loop

我希望它能以任何方式對您有所幫助,這似乎是一個可行的選擇,因為當您使用常規功能時,它會一直凍結。

還有一件事

請注意pygame.time.get_ticks()會以毫秒為單位提供當前時間,有關完整文檔,請訪問此處

暫無
暫無

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

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