モブを1体倒すと2体出現するゲームを作っています。私はそれを持っているので、1 つの暴徒を殺すと、他の 2 つの暴徒が表示されますが、1 つだけが表示されたままになり、想定どおりに動作します。もう一方は、表示されてから消えます。両方が想定どおりに動作するようにするにはどうすればよいですか。これが私がこれまでに持っているものです:
【モブクラス】
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
【メインループの追加と削除】
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)
【メインループでの再描画と移動】
for Mob in mobs:
Mob.moveV()
Mob.moveH()
screen.blit(Mob.image, Mob.rect)