跨多个线程跟踪滴答声

2024-07-05 11:19:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试简单的动画,我使用带有布尔值的get_ticks()来确定动画的开始和结束时间:

if ticks >= 1000:
    alpha1 += alphaChange
    htpCap1.set_alpha(alpha1)
    windowSurface.blit(htpCap1, (0,110))

if ticks < 5000:
    windowSurface.blit(sprite, (spriteX,310))
    windowSurface.blit(wasd, (wasdX,600))

问题是,在第一次执行其他模块之后,滴答似乎不会重置。我猜它会跟踪所有模块之间的滴答声,这意味着上面的代码只有在我首先运行它的模块时才能工作

所以我的问题是:有没有一种方法可以跟踪每个模块的总滴答声?这样我就可以简单地从以前运行的模块中减去记号

提前谢谢


Tags: 模块alphagetif时间动画setsprite
1条回答
网友
1楼 · 发布于 2024-07-05 11:19:13

我不确定您正在使用哪个模块来“get_ticks()”,但是如果您可以使用时间模块并调用

time.clock()

获取进程启动后的毫秒数。如果您对加载特定模块后的滴答数感兴趣,那么只需将该值存储在模块底部,并与该值进行比较,就可以这样做(尽管我猜测是因为我不知道您如何调用所提供的代码):

import time

def animate()
  if time.clock() - module_loaded_at >= 1000:
    alpha1 += alphaChange
    htpCap1.set_alpha(alpha1)
    windowSurface.blit(htpCap1, (0,110))

  if time.clock() - module_loaded_at < 5000:
    windowSurface.blit(sprite, (spriteX,310))
    windowSurface.blit(wasd, (wasdX,600))

module_loaded_at = time.clock()
while True:
   animate()
   time.sleep(0.05)

相关问题 更多 >