擅长:python、mysql、java
<p>到这里的方法,是提高你的妖精?(和其他字符)在你的程序中处理从函数到适当的类,这样它们就可以有内部状态。在</p>
<p>每一个这样的类都可以有变量,这些变量在每一个游戏帧更新,当计数达到某个值时触发一个动作。在</p>
<p>这个解决方案比仅仅为了计时而添加并发线程更干净,而且如果做得好,可以导致应用程序设计,这将是开发、扩展和维护的福音。在</p>
<p>您可以采用的样式的简短示例,保留代码中的功能。
(请注意,您可以使用游戏精灵精灵精灵类为每个对象组调用authomaticaly的“update”方法-我将在下面从头开始执行)</p>
<p>帧延迟=20</p>
<pre><code>class Goblin(object):
def __init__(self):
self.x = 1 #or whatever
self.y = 1 #or whatever
self.movement_count = 0
self.move_at_each = 10
def move(self):
self.movement_count += 1
if self.movement_count < self.move_at_each:
return
self.movement_count = 0
self.x += 32
</code></pre>
<p>在主循环中,实例化一个地精,执行以下操作:</p>
<p><code>goblin = Goblin()</code>,在进入while循环之前,并在每个帧调用<code>goblin.move()</code>。
这样你就可以有一个合适的地精类,这将允许你有多个“地精”在你的游戏-而你的例子中的代码将要求你硬编码每个字符。你只要把它叫做地精。快走“在你的游戏的每一帧的方法。上面的例子被调整为每10帧移动一次,但是你可以改变它(也可以为你实例化的每个小妖精改变它)。在</p>
<p>正如我所说,pygame已经提供了“Sprite”和“Sprite groups”类作为这种机制的框架,但是在一个更小的游戏中使用你自己的类将帮助你更好地理解pygame Sprite已经提供的需求和内容,因此您可以在以后的项目(或项目的后期阶段)中使用它们</p>