回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在开发一款游戏,它的特点是随机生成洞穴。它首先创建一个由16x16块组成的640x480字段。然后放置<code>CaveMaker</code>的3个实例,这些实例会破坏它们所接触的每个块,它们应该每隔几秒改变方向,以产生随机的洞穴状路径,但在我的代码中,它们会变成这样的垃圾:</p>
<p><img src="https://i.stack.imgur.com/0DUba.png" alt="Eeeewwww"/></p>
<p>我相信这是因为我写的那些非常即兴的代码会让它改变方向:</p>
<pre><code>class CaveMaker(object):
def __init__(self):
self.active=1
self.x=randrange(1,640)
self.y=randrange(1,480)
#Choose a X speed and Y speed
self.direction=(choice([20,-20,1,-1,15,0,-15]),choice([20,-20,1,-1,15,0,-15]))
self.rect=pygame.Rect(self.x,self.y,75,75)
#Set amount of time to move this direction
self.timeout=choice([30,50,70,90,110])
self.destroytime=randrange(200,360)
def Update(self):
if self.active==1:
#Move in a certain direction?
self.x+=self.direction[0]
self.y+=self.direction[1]
self.timeout-=1
if self.timeout==0:
#Change direction?
self.direction= (choice([20,-20,1,-1,15,0,-15]),choice([20,-20,1,-1,15,0,-15]))
self.timeout=choice([30,50,70,90,110])
self.destroytime-=1
if self.destroytime==0:
self.active=0
self.rect=pygame.Rect(self.x,self.y,60,60)
</code></pre>
<p>那么我如何告诉物体随机移动呢?在</p>
<p>以下是我的完整代码:</p>
^{pr2}$