Verwalten von Gruppen in Pygame
Ich erstelle ein Spiel, in dem, wenn Sie einen Mob töten, zwei weitere erscheinen. Ich habe es so, wenn Sie einen Mob töten, erscheinen die beiden anderen, aber nur einer bleibt sichtbar und verhält sich so, wie es sein soll. Der andere erscheint gerade und verschwindet dann. Wie kann ich das schaffen, damit sich beide so verhalten, wie sie sollen? Folgendes habe ich bisher:
[MOB-Klasse]
class MOB(pygame.sprite.Sprite):
def __init__(self, location):
self.pos = [0,0]
self.image = ENEMY
pygame.sprite.Sprite.__init__(self)
self.rect = self.image.get_rect()
self.rect.left, self.rect.top = location
self.rect.right, self.rect.bottom = location
self.rect.center = location
self.speed = random
self.hp = 4
def update(self):
if self.hp == 0:
mobs.add(self)
self.image = ENEMY
self.pos = [0,0]
self.hp = 4
def moveH(self):
if self.rect.centerx >= Player.rect.centerx:
self.rect.left = self.rect.left - 4
elif self.rect.centerx <= Player.rect.centerx:
self.rect.left = self.rect.left + 4
def moveV(self):
if self.rect.centery <= Player.rect.centery:
self.rect.top = self.rect.top + 4
if self.rect.centery >= Player.rect.centery:
self.rect.top = self.rect.top - 4
[Hinzufügen und Entfernen in der Hauptschleife]
for Mob in mobs:
if Mob.hp == 0:
score = score + 1
Mob.kill()
new_mobs = MOB([50, 50]), MOB([60, 300])
mobs.add(*new_mobs)
[Neuzeichnen und Bewegen in der Hauptschleife]
for Mob in mobs:
Mob.moveV()
Mob.moveH()
screen.blit(Mob.image, Mob.rect)