【问题标题】:Trying to add a timer to my game尝试在我的游戏中添加计时器
【发布时间】:2014-10-29 07:30:14
【问题描述】:

这是一个非常简单的问题,我不知道为什么我没有得到答案,但是有人知道如何在 Python 3.4.1 的 pygame 中正确添加计时器吗?

这是我目前所拥有的:

texta = font.render("Time:"+str(time), True, black)
screen.blit(texta, [500,100])

我已经阅读了使用循环和许多其他方法的解决方案,但到目前为止都没有。我希望在屏幕上显示一个计时器,并计算用户执行某项任务所需的秒数。

【问题讨论】:

  • 这两行不会完成这项工作——如果可以的话,你需要写一个完整的尝试。这确实取决于您的代码的结构。
  • 用你刚才写的,当前时间会在屏幕上显示一次,然后就不会改变了。这是一个能让你走上正轨的问题。如何反复更新变量“时间”并反复渲染时间,使其显示正确的时间?
  • 看这个:stackoverflow.com/questions/10596988/… 它可能对你有帮助。

标签: python python-3.x timer pygame


【解决方案1】:

这是一个你可以使用的计时器

    import pygame, sys
    from pygame.locals import *

    clock = pygame.time.Clock()

    time = 0  #In Seconds

    #GameLoop

    while True:

        milli = clock.tick()  #clock.tick() returns how many milliseconds passed since the last time it was called


        #So it tells you how long the while loop took

        seconds = milli/1000.

        time += seconds

        print time #So you can see that this works

【讨论】:

  • 只要确保正确地列出所有内容。会有缩进错误
  • 如何将其打印到屏幕上?
  • myfont = pygame.font.Font( None, size ) text = self.myfont.render(seconds, True, color) #message 必须是字符串 screen.blit(text, (x, y ))
【解决方案2】:

您可以使用上面的 jues velarde 的代码,然后使用将时间变量打印到您的 pygame 表面上

font = pygame.font.Font(YourFont, YourSizeOfText)
text = font.render(str(time), 1, (YourColour)) # The time variable being in jues's code
DISPLAYSURF.blit(text, (YourXValue, YourYValue)

并且您也可以在需要时在循环中调用此代码,在您的情况下,当您想开始计时用户的任务时,但请记住也要在您的程序中运行 jues 的代码,这样才能正常工作。

希望我能帮上忙!

【讨论】:

    猜你喜欢
    • 2019-09-09
    • 1970-01-01
    • 2020-04-28
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 2019-01-21
    相关资源
    最近更新 更多