def __init__(self): self.groups = all_sprites pg.sprite.Sprite.__init__(self, self.groups) self.image = pg.Surface((32, 32)) self.image.fill(RED) self.rect = self.image.get_rect() self.pos = vec(randint(25, WIDTH - 25), randint(25, HEIGHT - 25)) self.vel = vec(3, 0).rotate(uniform(0, 360)) self.acc = vec(0, 0) self.rect.center = self.pos self.steering = SteeringManager(self)
def __init__(self): self.groups = all_sprites, mobs pg.sprite.Sprite.__init__(self, self.groups) self.behaviors = MOB_BEHAVIORS self.image = pg.Surface((MOB_SIZE, MOB_SIZE)) self.image.fill(YELLOW) self.rect = self.image.get_rect() self.pos = vec(randint(0, WIDTH), randint(0, HEIGHT)) self.vel = vec(self.behaviors['max_speed'], 0).rotate(uniform(0, 360)) self.acc = vec(0, 0) self.rect.center = self.pos self.steering = SteeringManager(self)
class Mob(pg.sprite.Sprite): def __init__(self): self.groups = all_sprites, mobs pg.sprite.Sprite.__init__(self, self.groups) self.behaviors = MOB_BEHAVIORS self.image = pg.Surface((MOB_SIZE, MOB_SIZE)) self.image.fill(YELLOW) self.rect = self.image.get_rect() self.pos = vec(randint(0, WIDTH), randint(0, HEIGHT)) self.vel = vec(self.behaviors['max_speed'], 0).rotate(uniform(0, 360)) self.acc = vec(0, 0) self.rect.center = self.pos self.steering = SteeringManager(self) def update(self): self.steering.seek(pg.mouse.get_pos()) # self.steering.evade(p1.pos, 2.0) self.steering.wander() self.steering.flock(mobs) # self.steering.avoid_walls(screen.get_rect(), 2) self.steering.update() if self.pos.x > WIDTH: self.pos.x = 0 if self.pos.x < 0: self.pos.x = WIDTH if self.pos.y > HEIGHT: self.pos.y = 0 if self.pos.y < 0: self.pos.y = HEIGHT self.rect.center = self.pos
class Mob(pg.sprite.Sprite): def __init__(self): self.groups = all_sprites, mobs pg.sprite.Sprite.__init__(self, self.groups) self.behaviors = MOB_BEHAVIORS self.image = pg.Surface((MOB_SIZE, MOB_SIZE)) self.image.fill(YELLOW) self.rect = self.image.get_rect() self.pos = vec(randint(0, WIDTH), randint(0, HEIGHT)) self.vel = vec(self.behaviors['max_speed'], 0).rotate(uniform(0, 360)) self.acc = vec(0, 0) self.rect.center = self.pos self.steering = SteeringManager(self) def update(self): self.steering.seek(pg.mouse.get_pos()) # self.steering.evade(p1.pos, 2.0) # self.steering.wander() self.steering.flock(mobs) # self.steering.avoid_walls(screen.get_rect(), 2) self.steering.update() if self.pos.x > WIDTH: self.pos.x = 0 if self.pos.x < 0: self.pos.x = WIDTH if self.pos.y > HEIGHT: self.pos.y = 0 if self.pos.y < 0: self.pos.y = HEIGHT self.rect.center = self.pos
class Predator(pg.sprite.Sprite): def __init__(self): self.groups = all_sprites pg.sprite.Sprite.__init__(self, self.groups) self.image = pg.Surface((32, 32)) self.image.fill(RED) self.rect = self.image.get_rect() self.pos = vec(randint(25, WIDTH - 25), randint(25, HEIGHT - 25)) self.vel = vec(3, 0).rotate(uniform(0, 360)) self.acc = vec(0, 0) self.rect.center = self.pos self.steering = SteeringManager(self) def update(self): # self.steering.seek(pg.mouse.get_pos()) self.steering.wander() self.steering.avoid_walls() self.steering.update() self.rect.center = self.pos