如何修复计时器以避免低于0秒的值?

时间:2017-12-14 02:22:46

标签: python-2.7 pygame

while gamerunning:
    timerstart = time.time()

    posy2 += 3
    if posy2 >= window_height:
        posy2 = -50
        randomx = random.randrange(0, window_width - 50)

    if health == 0:
        gameover = True

    while gameover:
        timerend = time.time()
        timer = timerend - timerstart
        print timer
        screentext("Game over, press esc to quit or press R to retry", black)
        pygame.display.update()

我正在试图弄清楚如何在python中正确实现一个计时器但是当我打印出来时我得到的值低于0秒所以我假设timer变量只打印出python所需的时间解释器在我的gameover循环中运行代码。我的问题是如何解决这个问题并制作一个适当的计时器,在游戏运行循环结束时运行并在游戏结束后结束。我对Python很陌生,所以我不确定除了时间之外我还能用什么其他模块来实现这个目标。

1 个答案:

答案 0 :(得分:1)

尝试在运行游戏的循环之外移动timerstart = timer.time()。在您while gamerunning:之前的示例中。问题是在每个循环中变量都被重置,从而得到了结果。

我们无法在该图片中看到您的其余代码,但在这种情况下,为了更新游戏之间的开始时间,您必须在/之后更新timerstart如果玩家选择“R”重试游戏。否则你的游戏就会结束。