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