[英]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.