def run(self): # Pygame sound mixer init pygame.mixer.pre_init(22050, -16, 2, 2048) # Initialize pygame pygame.init() # Setup the event manager evManager = EventManager.EventManager() # Setup the input controller inputctrl = InputController.InputController(evManager) # Setup the tick controller ticker = TickController.TickController(evManager) # Setup a logger (this may be commented out after completion so that no logging occurs) GlobalServices.init(evManager) logger = Logger.Logger(evManager) GlobalServices.setLogger(logger) logger.setFilter([MapLoadingFailedEvent]) evManager.register(logger) # Setup an audio device GlobalServices.setAudioDevice(AudioDevice.AudioDevice()) # Setup the top-most view "controller" view = View.View(evManager) # Register different listeners at the event manager evManager.register(inputctrl) evManager.register(ticker) evManager.register(view) # Setup the game object providing access to game entities & register it as well game = Game.Game(evManager) evManager.register(game) # Start the tick controller, which then fires tick events and thereby "induces" the game loop ticker.run()