即使绘制它的条件不再有效,如何保持绘制精灵?

How to keep a sprite drawn even after the the condition that drew it is no longer valid?

我的问题与 Pygame 中代码的特定部分有关,我试图每隔几秒在屏幕上绘制一个新的精灵。

  def spawn(self):
    self.count += 2
    alien1_sprite = Alien1((rand.randrange(38,462),50))
    rem = self.count % 33
    if rem == 0:
      self.alien1 = pygame.sprite.Group()
      self.alien1.add(alien1_sprite)
      self.alien1.draw(screen) 

每次调用spawn函数的时候没有精灵同时存在,如何解决这个问题?

问题是,您为每个外星人创建了一个新的 Group。您只需创建一次 Group 并将外星人 Sprites 添加到这个 Group:

  • 在class.[=40的构造函数(init)中创建alien1Group =]
  • spawn方法中添加外星人。
  • 使用您的“绘制”方法绘制 中的所有外星人。 (您的方法名称可能不同 - 我不知道)
class ...

    def __init__(self):
        # [...]
 
        self.alien1 = pygame.sprite.Group() # creat the group in the constructor

    def spawn(self):
        self.count += 2
        rem = self.count % 33
        if rem == 0:
            alien1_sprite = Alien1((rand.randrange(38,462),50))
            self.alien1.add(alien1_sprite)
      
    def draw(self):    # your draw or render method

       # [...]

       self.alien1.draw(screen)  # draw all the aliens

阅读 pygame.sprite.Group 的文档。 Group 管理它包含的 SpritesGroup 是存储 Sprites.

的“列表”