def __init__(self, config: dict[(str, Union[(int, str)])]=None):
    if (config is None):
        with open('source/config.json') as file:
            config = load(file)
    self.width: int = ...
    self.height: int = ...
    self.fps: int = ...
    self.start_scene: str = ...
    self.volume: int = ...
    for name in ['width', 'height', 'fps', 'start_scene', 'volume']:
        setattr(self, name, config[name])
    self.done = True
    self.clock = Clock()
    self.bg_sprite_sheet = load_sprite_sheet('bg_imgs')
    self.bgm_intro = get_song('intro.wav')
    self.bgm = get_song('bgm.wav')
    self.bgm_is_running = False
    self.bgm_intro.set_volume(self.volume)
    self.bgm.set_volume(self.volume)
    self.name = 'OREO Clicker'
    self.screen: Surface
    self.game = Game(self)
    self.menu = Menu(self)
    self.shop = Shop(self)
    self._scene: Scene = getattr(self, self.start_scene, 'menu')
    self.game.initialize()
    self.menu.initialize()
    self.shop.initialize()
def __init__(self, config: dict[(str, Union[(int, str)])]=None):
    if (config is None):
        with open('source/config.json') as file:
            config = load(file)
    self.width: int = ...
    self.height: int = ...
    self.fps: int = ...
    self.start_scene: str = ...
    self.volume: int = ...
    for name in ['width', 'height', 'fps', 'start_scene', 'volume']:
        setattr(self, name, config[name])
    self.done = True
    self.clock = Clock()
    self.bg_sprite_sheet = load_sprite_sheet('bg_imgs')
    self.bgm_intro = get_song('intro.wav')
    self.bgm = get_song('bgm.wav')
    self.bgm_is_running = False
    self.bgm_intro.set_volume(self.volume)
    self.bgm.set_volume(self.volume)
    self.name = 'OREO Clicker'
    self.screen: Surface
    self.game = Game(self)
    self.menu = Menu(self)
    self.shop = Shop(self)
    self._scene: Scene = getattr(self, self.start_scene, 'menu')
    self.game.initialize()
    self.menu.initialize()
    self.shop.initialize()