Mercurial > skaapsteker
view skaapsteker/__main__.py @ 79:fe8652a060df
Simple menu screen and TextChoice widget
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Mon, 04 Apr 2011 00:46:13 +0200 |
parents | 100e80ed781b |
children | c455b7925212 |
line wrap: on
line source
"""Game main module. """ from .constants import SCREEN, FREQ, BITSIZE, CHANNELS, BUFFER, DEBUG from .engine import Engine from .levelscene import LevelScene from .menuscene import MenuScene import pygame from pygame.locals import SWSURFACE import sys import optparse def parse_args(args): parser = optparse.OptionParser() parser.add_option("--no-sound", action="store_false", default=True, dest="sound", help="disable sound") if DEBUG: parser.add_option("--level", type="str", default=None, dest="level", help="initial level") parser.add_option("--no-rects", action="store_false", default=True, dest="rects", help="disable debugging rects") opts, _ = parser.parse_args(args or []) return opts def main(): """Launch Nine Tales. """ opts = parse_args(sys.argv) pygame.display.init() pygame.font.init() if opts.sound: try: pygame.mixer.init(FREQ, BITSIZE, CHANNELS, BUFFER) except pygame.error, exc: raise # TODO: bail out to no_sound(exc) else: # Ensure get_sound returns nothing, so everything else just works # TODO: bail out to disable_sound() pass pygame.display.set_mode(SCREEN, SWSURFACE) #pygame.display.set_icon(pygame.image.load( # data.filepath('icons/nine_tales24x24.png'))) pygame.display.set_caption("Nine Tales") level = getattr(opts, 'level', None) engine = Engine() if level is not None: engine.change_scene(LevelScene(level)) else: engine.change_scene(MenuScene()) try: engine.run() except KeyboardInterrupt: pass if __name__ == '__main__': main()