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)
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)
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))