擅长:python、mysql、java
<p>对于主游戏循环,第二次尝试使用<code>event.key</code>而不是<code>event.type</code>。像这样:</p>
<pre><code>for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
cloud1_Y += cloud1_Y_change
</code></pre>
<p>我注意到的另一个问题是,您没有在pygame中将图像转换为rect对象,然后使用<code>.blit</code>将其显示在屏幕上。<code>.blit</code>函数需要一个rect对象参数,这就是您遇到问题的原因</p>
<pre><code>cloud1 = pygame.image.load('asteroid_pic.bmp')
rect = cloud1.get_rect()
screen.blit(cloud1, self.rect)
</code></pre>
<p>我还建议为您的精灵创建单独的类,以便更容易跟踪它们,如果您希望创建同一个精灵的副本,但仍保留单个类精灵的相同特征,可以通过从<code>pygame.sprite</code>导入函数<code>Group</code>来实现</p>