pygame中的精灵组能否包含子组,子组中除了普通精灵之外还包含精灵?

2024-09-24 22:24:18 发布

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

我是pygame的新手,我想知道下面的内容是否可行。你知道吗

假设我有两个spritegroup叫做Sprites和Sprites1,每个sprite1中有一组不同的不重叠的Sprites。有没有可能这样做精灵.添加(精灵1)?你知道吗


Tags: 内容pygame精灵新手spritessprite1spritegroupsprites1
2条回答

亚历克斯的回答是正确的,但它依赖于两个你可能不知道的小技巧,值得解释:

  • 精灵组是iterable如果您有一个名为enemies的组,您可以轻松地循环它包含的所有精灵:

    for enemy in enemies: enemy.health *= 2

很方便吧?只是不要试图使用切片和索引:组不是列表!为此,使用group.sprites(),它返回列表(但仍然是方法,因此必须使用括号)。你知道吗

  • 方法接受多个参数,每个参数都是sprite。因此可以在一个add中添加多个精灵,如:

    world.add(boss, ninja, tree, player)

这很酷,但效果更好:如果您有一个sprite序列(列表、元组等),或者有一个迭代器/生成器生成sprite,那么您可以使用*语法将元素扩展为多个参数。也很方便,不是吗?:)

这两种功能都可以组合(它们的设计初衷是这样的),这就产生了Alex使用的令人敬畏的语法:

world.add(*enemies)

祝你好运杀死他们:)

查看pygame文档 http://www.pygame.org/docs/ref/sprite.html#pygame.sprite.Group

pygame.sprite.Group.add(*sprite)
  • 任何数量的精灵

希望有帮助:) 干杯, 亚历克斯

相关问题 更多 >