Mercurial > skaapsteker
view skaapsteker/__main__.py @ 531:5f1058593462
Remove all tails by default
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 10 Apr 2011 00:18:36 +0200 |
parents | 6dc341ea8950 |
children | 213f46e787c4 |
line wrap: on
line source
"""Game main module. """ import os import sys import optparse import pygame from pygame.locals import SWSURFACE from . import options from .constants import SCREEN, DEBUG from .data import filepath from .engine import Engine from .levelscene import LevelScene from .menuscene import MenuScene from .sound import SoundSystem def _get_default_save_location(): """Return a default save game location.""" app = "ninetales" if sys.platform.startswith("win") and "APPDATA" in os.environ: return os.path.join(os.environ["APPDATA"], app) else: return os.path.join(os.path.expanduser("~"), ".%s" % app) def parse_args(args): parser = optparse.OptionParser() parser.add_option("--no-sound", action="store_false", default=True, dest="sound", help="disable sound") parser.add_option("--dvorak", action="store_true", default=False, dest="dvorak", help="Dvorak keyboard layout") parser.add_option("--save-location", action="store", default=_get_default_save_location(), dest="save_location", help="Saved game location") if DEBUG: parser.add_option("--level", type="str", default=None, dest="level", help="Initial level") parser.add_option("--all-tails", action="store_true", default=False, dest='all_tails', help="Start with all the tails") parser.add_option("--no-rects", action="store_false", default=True, dest="rects", help="Disable debugging rects") opts, _ = parser.parse_args(args or []) options['dvorak'] = opts.dvorak options['sound'] = opts.sound options['save_location'] = opts.save_location if DEBUG: options['debug_rects'] = opts.rects options['all_tails'] = opts.all_tails return opts.level def main(): """Launch Nine Tales. """ level = parse_args(sys.argv) pygame.display.init() pygame.font.init() soundsystem = SoundSystem(options['sound']) pygame.display.set_mode(SCREEN, SWSURFACE) pygame.display.set_icon(pygame.image.load(filepath('icons/program/icon_24.png'))) pygame.display.set_caption("Nine Tales") engine = Engine(soundsystem) if level is not None: engine.game_state.new_game() engine.change_scene(LevelScene(engine.game_state, soundsystem, level + '.starting')) else: engine.change_scene(MenuScene(engine.game_state, soundsystem)) try: engine.run() except KeyboardInterrupt: pass if __name__ == '__main__': main()