【问题标题】:Pygame sprites timerPygame精灵计时器
【发布时间】:2015-01-05 18:28:41
【问题描述】:

我需要制作一个精灵列表,每个精灵都应该有某种计时器,这样它就可以自己执行一个动作(例如每 10 秒拍摄一次)。但是它们将在不同的时间创建和添加新的,所以它们每个都应该有自己的计时器。 我知道如何制作精灵列表,但我不知道如何为每个精灵或类似的东西附加一个计时器。 有人可以帮我吗?

【问题讨论】:

    标签: python pygame


    【解决方案1】:

    您可以将计时器添加为精灵的属性:

    class Sprite:
        def __init__(self, ...):
            self.timer = pygame.Clock()
            # ...
        # ...
    

    或者(确保没有成员已经调用timer):

    for sprite in sprites:
        sprite.timer = pygame.Clock()
    

    或者您可以将列表更改为元组列表,其中包含一个精灵和一个计时器:

    sprites = [(sprite, pygame.Clock()) for sprite in sprites]
    

    这将创建一个格式如下的列表:

    [(sprite, timer), (sprite, timer), ...]
    

    然后您可以访问精灵和计时器:

    sprite = sprites[0][0]  # first sprite
    timer = sprites[0][1]  # first timer
    

    或者:

    sprite, timer = sprites[0]  # first pair
    

    您还可以有一个{sprite: timer} 的字典,然后使用sprite_to_timer[sprite] 访问一个精灵的计时器。

    注意:将 pygame.Clock 替换为您想要使用的任何计时器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多