示例#1
0
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()