Перемещение спрайтов индивидуально в Pygame - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь заставить несколько спрайтов следовать тому же алгоритму, что и основной игрок. Это мой код для моего Sprite

class Zombie(pygame.sprite.Sprite):
def __init__(self):
    pygame.sprite.Sprite.__init__(self)
    self.image = pygame.Surface((10, 10))
    self.image.fill((250, 0, 0))
    self.rect = self.image.get_rect()
    self.rect.x = random.randrange(0, horizon - self.rect.width)
    self.rect.y = random.randrange(0, -100, -100)
    self.vel = random.randrange(5, 10)

def update(self):
    # find normalized direction vector (dx, dy) between enemy and player
    dx, dy = player.rect.x - zombie.rect.x, player.rect.y - zombie.rect.y
    dist = math.hypot(dx, dy)
    dx, dy = dx / dist, dy / dist
    # move along this normalized vector towards the player at current speed
    zombie.rect.x += dx * zombie.vel
    zombie.rect.y += dy * zombie.vel

А это мой код для создания нескольких спрайтов

all_sprites = pygame.sprite.Group()
mobs = pygame.sprite.Group()
player = Player()
zombie = Zombie()
all_sprites.add(player)
for i in range(8):
    z = Zombie()
    all_sprites.add(z)
    mobs.add(z)

Что происходит, так это то, что только один из спрайтов начинает следовать за главным игроком. Как заставить каждый спрайт следовать одному и тому же коду?

большое спасибо c;

...