pygame中的sprite组是否包含除正常sprite之外的包含sprite的子组?

时间:2014-03-13 16:34:31

标签: python pygame

我是pygame的新手,我想知道以下是否可行。

假设我有两个名为Sprites和Sprites1的Spritegroup,每个Spritegroup都有一组不同的非重叠精灵。有可能做像Sprites.add(Sprites1)这样的事情吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

  • 精灵群是可迭代的如果您有一个名为enemies的群组,您可以轻松循环播放其中包含的所有精灵:

    for enemy in enemies: enemy.health *= 2

很方便,对吧?只是不要试图使用切片和索引:一个组一个列表!为此,使用group.sprites()返回列表(但仍然是方法,因此是必需的括号)。

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

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

这很酷,但它变得更好:如果你有精灵的序列(列表,元组等)或产生精灵的迭代器/生成器,你可以使用*语法将元素扩展为多个参数。也很方便,不是吗? :)

两个功能都可以组合(它们被设计为),这导致了Alex使用的令人敬畏的语法:

world.add(*enemies)

祝你好运杀死所有人:)