def __init__(self, screen_size, resource_path): global _game _game = self self.mode = None self.running = False self.screen_size = screen_size pygame.mixer.pre_init(frequency=44100) pygame.init() pygame.display.set_caption('After You!') self.clock = pygame.time.Clock() self.screen = pygame.display.set_mode( self.screen_size, pygame.OPENGL | pygame.DOUBLEBUF | pygame.HWSURFACE) self.component_manager = componentmanager.ComponentManager() self.component_manager.register_component(MovementComponent()) self.component_manager.register_component(ExampleComponent()) self.component_manager.register_component(AnimationComponent()) self.component_manager.register_component(DrawComponent()) self.component_manager.register_component(InputMovementComponent()) self.component_manager.register_component(DrawHitBoxComponent()) self.component_manager.register_component(DrawCircleComponent()) self.component_manager.register_component(SmokeScreenComponent()) self.component_manager.register_component(PlayerCollisionComponent()) self.component_manager.register_component(DecoyMovementComponent()) self.component_manager.register_component(SelfDestructComponent()) self.component_manager.register_component(SpawnDecoyComponent()) self.component_manager.register_component(DrawScoreComponent()) self.component_manager.register_component(MinefieldComponent()) self.component_manager.register_component(DrawTimerComponent()) self.component_manager.register_component(UpdateTimerComponent()) self.component_manager.register_component(SpeedBoostComponent()) self.component_manager.register_component(ButtonInterpreterComponent()) self.component_manager.register_component(DrawActionsComponent()) self.component_manager.register_component(SpawnVortexComponent()) self.component_manager.register_component(DrawVortextComponent()) self.component_manager.register_component(GrowVortextComponent()) self.component_manager.register_component(TrapComponent()) self.component_manager.register_component(HideComponent()) self.component_manager.register_component(AIActionComponent()) self.component_manager.register_component(AIMovementComponent()) self.entity_manager = EntityManager() self.resource_manager = ResourceManager(resource_path) self.resource_manager.register_loader('data', LoadEntityData) self.resource_manager.register_loader('image', LoadImage) self.resource_manager.register_loader('inputmap', LoadInputMapping) self.resource_manager.register_loader('sound', LoadSound) self.input_manager = InputManager() self.renderer = GLRenderer() self.renderer.resize(self.screen_size) self.view = View([SimpleLayer('draw'), SimpleLayer('ui')])