Example #1
0
    def __init__(self, event_handler, world, screen, mouse, spinner, keyboard):
        self.event_handler = event_handler
        self.world = world
        self.screen = screen
        self.mouse = mouse
        self.spinner = spinner
        self.keyboard = keyboard

        self.steering_entities = []
        self.entity_list = [
            self.world.add_entity((100, 100), (100, 0)) for i in xrange(1)
        ]
        [
            self.screen.add_entity(entity,
                                   trace=False,
                                   shape='s',
                                   color='b',
                                   size=5) for entity in self.entity_list
        ]
        [
            self.world.apply_relative_force(entity, pi / 2, 100)
            for entity in self.entity_list
        ]
        from Controller.Cameras import FollowCamera
        self.camera = FollowCamera(screen, world)
        self.camera.set_target(self.entity_list[0])

        # Seek entites are green
        self.AddSteeringEntity(SteerForPursuit, 'g')
        arrive_id = self.AddSteeringEntity(SteerForArrive, color=[0, 255, 150])
        self.steering_entities[arrive_id].set_slowing_distance(100.0)

        #Evade entities are red
        evade_id = self.AddSteeringEntity(SteerForEvasion, 'r')
        self.steering_entities[evade_id].set_safe_distance(5.0)
        flee_id = self.AddSteeringEntity(SteerForFlee, 'r')
        self.steering_entities[flee_id].set_safe_distance(10.0)

        #Track entites are Yellow
        yellow = (255, 255, 1)
        track_id = self.AddSteeringEntity(SteerForTrack, yellow)

        offset_id = self.AddSteeringEntity(SteerForOffset, yellow)
        self.steering_entities[offset_id].set_offset(100.0)

        #Left click ends app
        event_handler.bind(self.on_mouse_left_up, mouse.MOUSE_BTN3_UP)

        # Debug information
        event_handler.bind(self.on_toggle_id,
                           keyboard.register_event_type('i', 'UP'))

        for listener_obj in [
                self.mouse, self.world, self.screen, self.keyboard, self.camera
        ]:
            event_handler.bind(listener_obj.on_update, self.spinner.TICK)
Example #2
0
    def __init__(self, event_handler, world, screen, mouse, spinner, keyboard):
        self.event_handler = event_handler
        self.world = world
        self.screen = screen
        self.mouse = mouse
        self.spinner = spinner
        self.keyboard = keyboard

        self.steering_entities = []
        self.entity_list = []

        # Add circling entity
        v = (50.0, 0)
        self.entity_list.append(self.world.add_entity((300, 300), v))
        self.screen.add_entity(self.entity_list[0],
                               trace=False,
                               shape='s',
                               color='b',
                               size=5)
        f = 20.0
        w = f / 50.0
        self.world.apply_relative_force(self.entity_list[0], pi / 2, f)
        self.world.set_angspeed(self.entity_list[0], w)

        # Seek entity
        mc_entity = self.AddSteeringEntity(SteerForMC, 'g', (-10, 0))
        self.steering_entities[mc_entity].set_gain(160)
        # Not working
        #        mch_entity = self.AddSteeringEntity(SteerForMCHeading,'r',(-10,0))
        #        self.steering_entities[mch_entity].set_gain(160)

        # Camera
        from Controller.Cameras import FollowCamera
        self.camera = FollowCamera(screen, world)
        self.camera.set_target(self.entity_list[0])
        #        self.camera.set_target(self.steering_entities[1].entity_id)

        #Left click ends app
        event_handler.bind(self.on_mouse_left_up, mouse.MOUSE_BTN3_UP)

        # Space pauses
        event_handler.bind(self.on_pause,
                           keyboard.register_event_type('Space', 'UP'))
        # Debug information
        event_handler.bind(self.on_toggle_id,
                           keyboard.register_event_type('i', 'UP'))

        # Drag and Drop
        self.grabbed = None
        event_handler.bind(self.on_mouse_down, mouse.MOUSE_BTN1_DOWN)
        event_handler.bind(self.on_mouse_up, mouse.MOUSE_BTN1_UP)
        event_handler.bind(self.on_mouse_move, mouse.MOUSE_MOVE)

        for listener_obj in \
             [self.mouse, self.world, self.screen, self.keyboard, self.camera]:
            event_handler.bind(listener_obj.on_update, self.spinner.TICK)
Example #3
0
    def __init__(self, event_handler, world, screen, mouse, spinner, keyboard):
        self.event_handler = event_handler
        self.world = world
        self.screen = screen
        self.mouse = mouse
        self.spinner = spinner
        self.keyboard = keyboard

        self.steering_entities = set()
        self.entities = list()
        #self.add_in_square(SteerForFlock)
        self.AddSteeringEntity(SteerForFlock, number=10, color='g')
        self.AddSteeringEntity(SteerForFlock, number=6, color='r')
        PJ = self.entities[0]

        #Creates camera
        from Controller.Cameras import FollowCamera
        self.camera = FollowCamera(screen, world)
        self.camera.set_target(PJ)

        #Shows target
        from Controller.Labelers import ConstantLabel
        label = ConstantLabel(world, screen, PJ, color=(255, 0, 0))
        label.set_text("Target")
        self.label = label

        #Left click ends app
        event_handler.bind(self.on_mouse_left_up, mouse.MOUSE_BTN3_UP)

        for listener_obj in [
                self.mouse, self.keyboard, self.world, label, self.screen,
                self.camera
        ]:
            event_handler.bind(listener_obj.on_update, self.spinner.TICK)

        self.text_entity_id = screen.add_text_entity(
            "Flocking app (with follow cam!)", (0, 0),
            size=20,
            color=(200, 200, 200))