view skaapsteker/__main__.py @ 20:f81e073fb8f5

Remove .json suffix from level defs.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 03 Apr 2011 17:35:32 +0200
parents 538d15e6cca1
children 38d7670a469a
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

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("--scene", type="str", default=None,
            dest="scene", help="initial scene")
        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")

    engine = Engine()
    engine.change_scene(LevelScene("level1"))
    try:
        engine.run()
    except KeyboardInterrupt:
        pass

 
if __name__ == '__main__':
    main()