Pygame sprites计时器

时间:2015-01-05 18:28:41

标签: python pygame

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

1 个答案:

答案 0 :(得分:3)

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

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替换为您想要使用的计时器