Как сказано в заголовке, я работаю над проектом Pygame, и я хочу сделать задержку, но все предлагаемые функции - pygame.time.delay()
или pygame.time.wait()
и sleep()
, и все эти 3 блокируют всю программу при вызове.
Чтобы быть более ясным, я хочу, чтобы персонаж получал урон каждую секунду, стоя на лаве, при этом имея право убегать от нее. Но когда функция отключается, программа блокируется, и я ничего не могу сделать до его смерти.
def delay(y):
starttime = time.time()
while True:
time.sleep (y - ((time.time() - starttime) % y))
def hurt(x):
global Life
pygame.mixer.Sound.play (Aie)
Life -= x
if tilemap[PlayerPos[1]][PlayerPos[0]] == 4 and Life != 0:
while tilemap[PlayerPos[1]][PlayerPos[0]] == 4 and Life != 0:
delay(1)
hurt(1)
death()
(4 означает LAVA)