def __init__(self, obj): threading.Thread.__init__(self, name="wiiremote") self.manager = EventManager() self.manager.add_object( obj, "WIIMOTE_BUTTON_PRESS", "WIIMOTE_BUTTON_RELEASE", "WIIMOTE_ACCEL", "WIIMOTE_GYRO", #"WIIMOTE_IR", "WIIMOTE_STATUS", "WIIMOTE_DISCONNECT", "QUIT") self.recv_mode = None self.set_mode = None self.MotionPlusInit = 0 self.pause = False self.yaw = self.pitch = self.roll = -1 self.yaw_fast = self.pitch_fast = self.roll_fast = -1 self.Ax = self.Ay = self.Az = -1 self.button = -1 self.startup = Queue() self.funcs = Queue() self.setDaemon(1) self.start() self.startup.get(True)
def main(): # Initialize pygame pygame.display.init() pygame.font.init() # Framerate Clock clock = pygame.time.Clock() pygame.display.set_caption('Battle Viewer') # Desired delay between frame redraws (25 fps target framerate) frame_rate = 24 # Create the display display_padding = 12 # Values are hacked for specific XML, needs to be made generic in future display_size = (display_padding * 2 + 128 * 4, display_padding * 3 + 400 + 128) display_depth = 24 display_surface = pygame.display.set_mode(display_size, 0, display_depth) # Event manager event_manager = EventManager() # Create the battle controller instance. This object is responsible for directing the battle battle_controller = battlecontroller.BattleController() battle_controller.manager = event_manager # Create the battle view instance. This object is responsible for drawing the battle battle_view = battleview.BattleView(display_surface) battle_view.manager = event_manager # Validate and Parse the battle XML try: xml_validator.validate_dtd(battle_file) except xml_validator.ValidationError, e: print battle_file, "Failed Validation:", repr(e) sys.exit(1)
name, position = event.data self.append_entity(Entity(name)) self.emit(EVENT_ENTITY_MOVE, (name, position)) # BattleController class. Responsible for distributing battle events class BattleController(BaseObject): def __init__(self): BaseObject.__init__(self) def start(self): entity_list = ['Sam', 'Max', 'Joe'] for entity_name in entity_list: self.emit(EVENT_ENTITY_NEW, (entity_name, (0, 0))) # Main if __name__ == '__main__': event_manager = EventManager() controller = BattleController() controller.manager = event_manager view = BattleView() view.manager = event_manager # start the ball rolling controller.start()