class Chaser(): def __init__(self, geometry, pos, speed=6): self.node = NodePath("segment") geometry.instance_to(self.node) self.node.reparent_to(render) self.node.set_pos(pos) self.speed = speed self.flash = False def destroy(self): base.chasers.remove(self) self.node.remove_node() def update(self): dt = globalClock.get_dt() if base.player.alive: vector = base.player.node.getPos() - self.node.getPos() distance = vector.get_xy().length() if distance < 0.8: base.player.die(spider=True) vector.normalize() if self.flash: self.node.set_y(self.node.get_y() + 1) self.node.set_pos(self.node.get_pos() + (vector * (self.speed * dt))) self.node.look_at(base.player.node) else: self.node.set_pos(self.node, (0, self.speed * dt, 0)) if self.flash: self.flash = False self.node.set_color(1, 1, 1, 1) else: self.node.clear_color()