擅长:python、mysql、java
<p>亚历克斯的回答是正确的,但它依赖于两个你可能不知道的小技巧,值得解释:</p>
<ul>
<li><p><strong>精灵组是<em>iterable</em>:</strong>如果您有一个名为<code>enemies</code>的组,您可以轻松地循环它包含的所有精灵:</p>
<p><code>for enemy in enemies:
enemy.health *= 2</code></p></li>
</ul>
<p>很方便吧?只是不要试图使用切片和索引:组不是列表!为此,使用<code>group.sprites()</code>,它<em>返回</em>列表(但仍然是<em>方法</em>,因此必须使用括号)。你知道吗</p>
<ul>
<li><p>方法接受多个参数,每个参数都是sprite。因此可以在一个<code>add</code>中添加多个精灵,如:</p>
<p><code>world.add(boss, ninja, tree, player)</code></p></li>
</ul>
<p>这很酷,但效果更好:如果您有一个sprite序列(列表、元组等),或者有一个迭代器/生成器生成sprite,那么您可以使用<code>*</code>语法将元素扩展为多个参数。也很方便,不是吗?:)</p>
<p>这两种功能都可以组合(它们的设计初衷是这样的),这就产生了Alex使用的令人敬畏的语法:</p>
<pre><code>world.add(*enemies)
</code></pre>
<p>祝你好运杀死他们:)</p>