Mercurial > mamba
view mamba/__main__.py @ 596:55e9c1b8e94c
Add --fullscreen option (that autoscales on pygame 2).
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Sat, 14 Jan 2023 18:45:33 +0100 |
parents | af8e16742b23 |
children | 915de6c7d342 |
line wrap: on
line source
"""Main module for the game""" import sys import pygame from pygame.locals import SWSURFACE from mamba.constants import SCREEN, NAME, WINDOW_ICON from mamba.options import options, parse_args, check_args from mamba.engine import Engine from mamba.gamestate import load_state from mamba.sound import SoundSystem from mamba.habitats.mainmenu import MainMenu from mamba.habitats.levelmenu import OfficialLevelMenu from mamba.habitats.userlevelmenu import UserLevelApi from mamba.habitats.level import LevelHabitat from mamba.habitats.editor import EditorHabitat from mamba.level import Level from mamba.data import load_image def main(): """Launch the currently unnamed mamab game""" parse_args(sys.argv) if not check_args(): sys.exit(1) if options.list_uncurated: api = UserLevelApi("uncurated") api.print_levels() sys.exit() SoundSystem(options.sound) display_flags = SWSURFACE if options.fullscreen: display_flags |= pygame.FULLSCREEN if getattr(pygame, "SCALED", None): display_flags |= pygame.SCALED pygame.display.init() pygame.font.init() pygame.display.set_mode(SCREEN, display_flags) pygame.display.set_icon(load_image(WINDOW_ICON)) pygame.display.set_caption(NAME) load_state() if options.edit: start = EditorHabitat(Level(options.level, 'official')) elif options.level is not None: start = LevelHabitat(Level(options.level, 'official'), OfficialLevelMenu.go_menu, OfficialLevelMenu.go_menu) elif options.uncurated is not None: api = UserLevelApi("uncurated") start = LevelHabitat(api.get_level(options.uncurated), sys.exit, sys.exit) else: start = MainMenu() engine = Engine() engine.set_habitat(start) try: engine.run() except KeyboardInterrupt: pass engine.set_habitat(None) # clear habitat