Mercurial > rinkhals
view gamelib/main.py @ 584:a1032ab5c1d6
Add check for windows display mode problems
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Sat, 28 Nov 2009 23:08:35 +0000 |
parents | 03d5cb669298 |
children | b6f42a09945d 6b21b2140262 |
line wrap: on
line source
'''Game main module. Contains the entry point used by the run_game.py script. Feel free to put all your game code here, or in other modules in this "gamelib" package. ''' import sys import pygame from pgu import gui from pygame.locals import SWSURFACE, SRCALPHA #from engine import Engine, MainMenuState from sound import init_sound import constants from config import config import data from misc import WarnDialog def create_main_app(screen): """Create an app with a background widget.""" app = gui.App() background = pygame.Surface(screen.get_size()) widget = gui.Image(background) app.init(widget, screen) return app def complaint_dialog(message): """Create a complaint dialog""" app = gui.App() def close(_w): app.quit() app.close = close dialog = WarnDialog('Problem starting Fox Assault', message) app.run(dialog) sys.exit(1) def sanity_check(): """Run some sanity checks, and complain if they fail""" try: pygame.Surface((100, 100), flags=SRCALPHA) except Exception, e: complaint_dialog("Unable to create a suitable screen, please check your display settings") def main(): """Main script.""" config.configure(sys.argv[1:]) init_sound() sanity_check() screen = pygame.display.set_mode(constants.SCREEN, SWSURFACE) pygame.display.set_icon(pygame.image.load( data.filepath('icons/foxassault24x24.png'))) main_app = create_main_app(screen) from engine import Engine, MainMenuState engine = Engine(main_app, config.level_name) try: engine.run(MainMenuState(engine), screen) except KeyboardInterrupt: pass