正如标题中所述,我正在一个pygame项目上,我想延迟一下,但是提供的所有功能都是pygame.time.delay()
或pygame.time.wait()
和sleep()
以及所有那三个在调用时会阻塞整个程序。
更清楚地说,我希望角色站在熔岩上时每秒受到伤害,同时有权逃离它。但是,当功能消失时,程序显得过分膨胀,直到他死后我什么也做不了。
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)
答案 0 :(得分:0)
您可以设置一个包含当前时间的条件,而不是使用延迟,例如
if time.time()%1==0 and tilemap[PlayerPos[1]][PlayerPos[0]] == 4 and Life != 0:
while tilemap[PlayerPos[1]][PlayerPos[0]] == 4 and Life != 0:
hurt(1)
death()