Пример #1
0
    def update(self, delta):
        #self.vehicle = entity.Enemy(self.vehicle)

        target = entity_control.get_entity(self.target_id)

        if target:
            self.vehicle.target_pos = target.pos
Пример #2
0
    def update(self, update):
        target = entity_control.get_entity(self.target_id)

        if target:
            diff = target.pos - self.vehicle.pos
            if self.chase_state == None:
                self.vehicle.socket_logic(Enemy_Basic_Chaser_Logic(self.target_id), 'move')
                self.chase_state = True

            if diff.mag() < 150 and self.chase_state:
                self.vehicle.socket_logic(Enemy_Basic_Orbit_Logic(self.target_id, 75), 'move')
                self.chase_state = False
            elif diff.mag() > 200 and not self.chase_state:
                self.vehicle.socket_logic(Enemy_Basic_Chaser_Logic(self.target_id), 'move')
                self.chase_state = True
Пример #3
0
    def update(self, delta):
        #self.vehicle = entity.Enemy(self.vehicle)

        target = entity_control.get_entity(self.target_id)

        if target:
            #self.range = self.vehicle.target_pos - self.vehicle.pos

            if self.dir == None:
                diff = target.pos - self.vehicle.pos
                self.dir = atan2(diff.y, diff.x) + randint(-10,10)*pi/20.0
                

            self.dir -= 0.0015*delta*self.clockwise

            self.dir = (self.dir if self.dir < 2*pi else self.dir-2*pi)
            self.dir = (self.dir if self.dir > 2*pi else self.dir+2*pi)

            self.vehicle.target_pos = Pnt(cos(self.dir), sin(self.dir)) * self.range + target.pos
Пример #4
0
 def collide(self, target_id, contact_pnt):
     if entity_control.get_entity(target_id).type == 'enemy':
         entity_control.kill_entity(self.id)