因此,我尝试制作一个游戏,在这个游戏中,我调用了一个我想慢慢执行的函数,但是当我使用“ time.sleep(x)”时,它将暂停文件中的所有内容,而不仅仅是暂停功能。我正在尝试为2D游戏添加跳跃功能,因此,如果有更好的方法可以实现,那么我将不胜感激任何建议,但这只是我的第一个想法。
for n in range(15):
Dino.rect.bottom -= 5
update_screen(Dino, screen, cactus)
time.sleep(0.01)
time.sleep(0.25)
inair = False
for n in range(15):
Dino.rect.bottom += 5
update_screen(Dino, screen, cactus)
time.sleep(0.01)
所以我拥有它,所以当我跳跃时,它使我可以缓慢跳跃,而不仅仅是传送,但是就像我说的那样,它在跳跃时会暂停一切。
参考方案
这不是计时的好方法。如您所说,这使整个程序休眠。多线程对于简单地移动精灵来说有点复杂。
解决此问题的一种简单方法是使用PyGame函数time.get_ticks(),该函数返回以毫秒为单位的不断增加的时间。
使用此时间戳记,可以记录一次操作的前一次时间,但是直到经过足够的时间后,才可以再次更新。
例如:
DINO_UPDATE_DELAY = 100 # milliseconds
next_dino_update