annotate pyntnclick/main.py @ 589:ebc48b397fd5 pyntnclick

Turn rect_drawer into a command line option
author Neil Muller <neil@dip.sun.ac.za>
date Sat, 11 Feb 2012 17:07:52 +0200
parents f20d211d2c91
children a77dd4619176
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f2c3b516741b Theme is 'Caught'. Start with Skellington 1.9.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
1 '''Game main module.
f2c3b516741b Theme is 'Caught'. Start with Skellington 1.9.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
2
f2c3b516741b Theme is 'Caught'. Start with Skellington 1.9.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
3 Contains the entry point used by the run_game.py script.
f2c3b516741b Theme is 'Caught'. Start with Skellington 1.9.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
4
f2c3b516741b Theme is 'Caught'. Start with Skellington 1.9.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
5 '''
f2c3b516741b Theme is 'Caught'. Start with Skellington 1.9.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
6
102
322cbc0a8cce Mac build stuff.
Jeremy Thurgood <firxen@gmail.com>
parents: 37
diff changeset
7 # Albow looks for stuff in os.path[0], which isn't always where it expects.
322cbc0a8cce Mac build stuff.
Jeremy Thurgood <firxen@gmail.com>
parents: 37
diff changeset
8 # The following horribleness fixes this.
322cbc0a8cce Mac build stuff.
Jeremy Thurgood <firxen@gmail.com>
parents: 37
diff changeset
9 import sys
322cbc0a8cce Mac build stuff.
Jeremy Thurgood <firxen@gmail.com>
parents: 37
diff changeset
10 import os.path
322cbc0a8cce Mac build stuff.
Jeremy Thurgood <firxen@gmail.com>
parents: 37
diff changeset
11 right_path = os.path.dirname(os.path.dirname(__file__))
322cbc0a8cce Mac build stuff.
Jeremy Thurgood <firxen@gmail.com>
parents: 37
diff changeset
12 sys.path.insert(0, right_path)
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
13 from optparse import OptionParser
102
322cbc0a8cce Mac build stuff.
Jeremy Thurgood <firxen@gmail.com>
parents: 37
diff changeset
14
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
15 import pygame
37
d449c4674da8 Fix call to set mode.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
16 from pygame.locals import SWSURFACE
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
17 from albow.shell import Shell
26
0a68d137f509 Initial inventory palette thing.
Jeremy Thurgood <firxen@gmail.com>
parents: 25
diff changeset
18
551
38fb04728ac5 Rearrange import.
Jeremy Thurgood <firxen@gmail.com>
parents: 548
diff changeset
19 from pyntnclick.menu import MenuScreen
38fb04728ac5 Rearrange import.
Jeremy Thurgood <firxen@gmail.com>
parents: 548
diff changeset
20 from pyntnclick.gamescreen import GameScreen
38fb04728ac5 Rearrange import.
Jeremy Thurgood <firxen@gmail.com>
parents: 548
diff changeset
21 from pyntnclick.endscreen import EndScreen
576
1b1ab71535bd Classify constants, which involves a whole bunch of XXX comments
Stefano Rivera <stefano@rivera.za.net>
parents: 570
diff changeset
22 from pyntnclick.constants import GameConstants
569
0587f11ff435 Link up Resource module.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 568
diff changeset
23 from pyntnclick.resources import Resources
564
2f7aa3cad77c Sound hackery
Neil Muller <neil@dip.sun.ac.za>
parents: 560
diff changeset
24 from pyntnclick.sound import Sound
570
9c3528c2cbe5 Bug fixes for sound hook-up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 569
diff changeset
25 from pyntnclick import state
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
26
589
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
27 from pyntnclick.tools.rect_drawer import RectApp, make_rect_display
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
28 from pyntnclick.tools.utils import list_scenes
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
29
532
02cf5537d74e PEP-8 main.
Jeremy Thurgood <firxen@gmail.com>
parents: 447
diff changeset
30
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
31 class MainShell(Shell):
581
7e4a20eb78b8 Pass game_description to all screens
Stefano Rivera <stefano@rivera.za.net>
parents: 580
diff changeset
32 def __init__(self, display, game_description):
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
33 Shell.__init__(self, display)
581
7e4a20eb78b8 Pass game_description to all screens
Stefano Rivera <stefano@rivera.za.net>
parents: 580
diff changeset
34 self.menu_screen = MenuScreen(self, game_description)
7e4a20eb78b8 Pass game_description to all screens
Stefano Rivera <stefano@rivera.za.net>
parents: 580
diff changeset
35 self.game_screen = GameScreen(self, game_description)
7e4a20eb78b8 Pass game_description to all screens
Stefano Rivera <stefano@rivera.za.net>
parents: 580
diff changeset
36 self.end_screen = EndScreen(self, game_description)
7e4a20eb78b8 Pass game_description to all screens
Stefano Rivera <stefano@rivera.za.net>
parents: 580
diff changeset
37 self.set_timer(game_description.constants.frame_rate)
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
38 self.show_screen(self.menu_screen)
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
39
532
02cf5537d74e PEP-8 main.
Jeremy Thurgood <firxen@gmail.com>
parents: 447
diff changeset
40
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
41 class GameDescriptionError(Exception):
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
42 """Raised when an GameDescription is invalid."""
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
43
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
44
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
45 class GameDescription(object):
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
46
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
47 # initial scene for start of game (unless overridden by debug)
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
48 INITIAL_SCENE = None
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
49
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
50 # list of game scenes
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
51 SCENE_LIST = None
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
52
569
0587f11ff435 Link up Resource module.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 568
diff changeset
53 # resource module
0587f11ff435 Link up Resource module.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 568
diff changeset
54 RESOURCE_MODULE = "Resources"
0587f11ff435 Link up Resource module.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 568
diff changeset
55
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
56 def __init__(self):
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
57 if self.INITIAL_SCENE is None:
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
58 raise GameDescriptionError("A game must have an initial scene.")
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
59 if not self.SCENE_LIST:
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
60 raise GameDescriptionError("A game must have a non-empty list"
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
61 " of scenes.")
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
62 self._initial_scene = self.INITIAL_SCENE
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
63 self._scene_list = self.SCENE_LIST
569
0587f11ff435 Link up Resource module.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 568
diff changeset
64 self._resource_module = self.RESOURCE_MODULE
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
65 self._debug_rects = False
569
0587f11ff435 Link up Resource module.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 568
diff changeset
66 self.resource = Resources(self._resource_module)
564
2f7aa3cad77c Sound hackery
Neil Muller <neil@dip.sun.ac.za>
parents: 560
diff changeset
67 self.sound = Sound(self.resource)
576
1b1ab71535bd Classify constants, which involves a whole bunch of XXX comments
Stefano Rivera <stefano@rivera.za.net>
parents: 570
diff changeset
68 self.constants = self.game_constants()
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
69
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
70 def initial_state(self):
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
71 """Create a copy of the initial game state."""
560
28f03563f4db Provide stubby access to sound and resource object from GameDescription on state and scene objects.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 556
diff changeset
72 initial_state = state.GameState(self)
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
73 initial_state.set_debug_rects(self._debug_rects)
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
74 for scene in self._scene_list:
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
75 initial_state.load_scenes(scene)
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
76 initial_state.set_current_scene(self._initial_scene)
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
77 initial_state.set_do_enter_leave()
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
78 return initial_state
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
79
576
1b1ab71535bd Classify constants, which involves a whole bunch of XXX comments
Stefano Rivera <stefano@rivera.za.net>
parents: 570
diff changeset
80 def game_constants(self):
1b1ab71535bd Classify constants, which involves a whole bunch of XXX comments
Stefano Rivera <stefano@rivera.za.net>
parents: 570
diff changeset
81 return GameConstants()
1b1ab71535bd Classify constants, which involves a whole bunch of XXX comments
Stefano Rivera <stefano@rivera.za.net>
parents: 570
diff changeset
82
556
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
83 def option_parser(self):
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
84 parser = OptionParser()
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
85 parser.add_option("--no-sound", action="store_false", default=True,
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
86 dest="sound", help="disable sound")
576
1b1ab71535bd Classify constants, which involves a whole bunch of XXX comments
Stefano Rivera <stefano@rivera.za.net>
parents: 570
diff changeset
87 if self.constants.debug:
556
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
88 parser.add_option("--scene", type="str", default=None,
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
89 dest="scene", help="initial scene")
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
90 parser.add_option("--no-rects", action="store_false", default=True,
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
91 dest="rects", help="disable debugging rects")
589
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
92 parser.add_option("--rect-drawer", action="store_true",
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
93 default=False, dest="rect_drawer",
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
94 help="Launch the rect drawing helper tool. Specify the"
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
95 " scene with --scene")
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
96 parser.add_option("--list-scenes", action="store_true",
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
97 default=False, dest='list_scenes', help="List all scenes"
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
98 " that can be used with --scene and exit.")
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
99 parser.add_option("--detail", type="str", default=None,
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
100 dest="detail", help="Detailed view for rect_drawer")
556
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
101 return parser
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
102
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
103 def main(self):
556
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
104 parser = self.option_parser()
a4f28da12720 Move option_parser onto GameDescription so it can be overridden by sub-classes if they lik.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 554
diff changeset
105 opts, _ = parser.parse_args(sys.argv)
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
106 pygame.display.init()
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
107 pygame.font.init()
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
108 if opts.sound:
576
1b1ab71535bd Classify constants, which involves a whole bunch of XXX comments
Stefano Rivera <stefano@rivera.za.net>
parents: 570
diff changeset
109 self.sound.enable_sound(self.constants)
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
110 else:
564
2f7aa3cad77c Sound hackery
Neil Muller <neil@dip.sun.ac.za>
parents: 560
diff changeset
111 self.sound.disable_sound()
576
1b1ab71535bd Classify constants, which involves a whole bunch of XXX comments
Stefano Rivera <stefano@rivera.za.net>
parents: 570
diff changeset
112 if self.constants.debug:
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
113 if opts.scene is not None:
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
114 # debug the specified scene
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
115 self._initial_scene = opts.scene
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
116 self._debug_rects = opts.rects
589
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
117 if opts.list_scenes:
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
118 # FIXME: Horrible hack to avoid image loading issues for
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
119 # now
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
120 display = pygame.display.set_mode(self.constants.screen,
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
121 SWSURFACE)
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
122 list_scenes(self.initial_state)
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
123 sys.exit(0)
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
124 if opts.rect_drawer:
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
125 if opts.scene is None:
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
126 print 'Need to supply a scene to use the rect drawer'
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
127 sys.exit(1)
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
128 display = make_rect_display()
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
129 try:
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
130 shell = RectApp(display, self.initial_state, opts.scene,
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
131 opts.detail)
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
132 except KeyError:
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
133 print 'Invalid scene: %s' % opts.scene
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
134 sys.exit(1)
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
135 else:
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
136 display = pygame.display.set_mode(self.constants.screen,
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
137 SWSURFACE)
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
138 pygame.display.set_icon(self.resource.get_image(
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
139 'suspended_sentence24x24.png', basedir='icons'))
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
140 pygame.display.set_caption("Suspended Sentence")
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
141
ebc48b397fd5 Turn rect_drawer into a command line option
Neil Muller <neil@dip.sun.ac.za>
parents: 587
diff changeset
142 shell = MainShell(display, self)
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
143 try:
554
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
144 shell.run()
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
145 except KeyboardInterrupt:
99a1420097df Create GameDescription object.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 553
diff changeset
146 pass