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