annotate gamelib/main.py @ 447:9c285017535d

Added icon and title to window
author Adrianna Pińska <adrianna.pinska@gmail.com>
date Sun, 29 Aug 2010 00:33:44 +0200
parents 3dab4984cbd7
children a9925aaf5f61 02cf5537d74e
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
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
19 from menu import MenuScreen
24
9d5de13e2ac3 Add a game screen. So far, the game content looks a *lot* like the main menu.
Jeremy Thurgood <firxen@gmail.com>
parents: 20
diff changeset
20 from gamescreen import GameScreen
443
3dab4984cbd7 Redo way of reaching end screen
Neil Muller <neil@dip.sun.ac.za>
parents: 282
diff changeset
21 from endscreen import EndScreen
176
c6ea3b11514c Add --scene for selecting initial scene during debugging.
Simon Cross <simon@simonx>
parents: 149
diff changeset
22 from constants import SCREEN, FRAME_RATE, FREQ, BITSIZE, CHANNELS, BUFFER, DEBUG
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
23 from sound import no_sound, disable_sound
176
c6ea3b11514c Add --scene for selecting initial scene during debugging.
Simon Cross <simon@simonx>
parents: 149
diff changeset
24 import state
447
9c285017535d Added icon and title to window
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 443
diff changeset
25 import data
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
26
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
27 def parse_args(args):
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
28 parser = OptionParser()
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
29 parser.add_option("--no-sound", action="store_false", default=True,
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
30 dest="sound", help="disable sound")
176
c6ea3b11514c Add --scene for selecting initial scene during debugging.
Simon Cross <simon@simonx>
parents: 149
diff changeset
31 if DEBUG:
c6ea3b11514c Add --scene for selecting initial scene during debugging.
Simon Cross <simon@simonx>
parents: 149
diff changeset
32 parser.add_option("--scene", type="str", default=None,
c6ea3b11514c Add --scene for selecting initial scene during debugging.
Simon Cross <simon@simonx>
parents: 149
diff changeset
33 dest="scene", help="initial scene")
282
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
34 parser.add_option("--no-rects", action="store_false", default=True,
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
35 dest="rects", help="disable debugging rects")
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
36 opts, _ = parser.parse_args(args or [])
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
37 return opts
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
38
124
97322b78d1c1 Minor style cleanups
Neil Muller <neil@dip.sun.ac.za>
parents: 107
diff changeset
39
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
40 class MainShell(Shell):
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
41 def __init__(self, display):
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
42 Shell.__init__(self, display)
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
43 self.menu_screen = MenuScreen(self)
24
9d5de13e2ac3 Add a game screen. So far, the game content looks a *lot* like the main menu.
Jeremy Thurgood <firxen@gmail.com>
parents: 20
diff changeset
44 self.game_screen = GameScreen(self)
443
3dab4984cbd7 Redo way of reaching end screen
Neil Muller <neil@dip.sun.ac.za>
parents: 282
diff changeset
45 self.end_screen = EndScreen(self)
105
65976205fc2d Rough Stab at basic animation support
Neil Muller <neil@dip.sun.ac.za>
parents: 102
diff changeset
46 self.set_timer(FRAME_RATE)
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
47 self.show_screen(self.menu_screen)
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
48
0
f2c3b516741b Theme is 'Caught'. Start with Skellington 1.9.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
49 def main():
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
50 opts = parse_args(sys.argv)
25
f9e697e0c6ba Don't initialise the entire pygame
Stefano Rivera <stefano@rivera.za.net>
parents: 24
diff changeset
51 pygame.display.init()
f9e697e0c6ba Don't initialise the entire pygame
Stefano Rivera <stefano@rivera.za.net>
parents: 24
diff changeset
52 pygame.font.init()
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
53 if opts.sound:
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
54 try:
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
55 pygame.mixer.init(FREQ, BITSIZE, CHANNELS, BUFFER)
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
56 except pygame.error, exc:
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
57 no_sound(exc)
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
58 else:
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
59 # Ensure get_sound returns nothing, so everything else just works
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
60 disable_sound()
282
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
61 if DEBUG:
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
62 if opts.scene is not None:
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
63 # debug the specified scene
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
64 state.DEBUG_SCENE = opts.scene
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
65 state.DEBUG_RECTS = opts.rects
37
d449c4674da8 Fix call to set mode.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
66 display = pygame.display.set_mode(SCREEN, SWSURFACE)
447
9c285017535d Added icon and title to window
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 443
diff changeset
67 pygame.display.set_icon(pygame.image.load(
9c285017535d Added icon and title to window
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 443
diff changeset
68 data.filepath('icons/suspended_sentence24x24.png')))
9c285017535d Added icon and title to window
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 443
diff changeset
69 pygame.display.set_caption("Suspended Sentence")
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
70 shell = MainShell(display)
149
7f6b11a0d404 Exit quietly on keyboard interrupt.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 124
diff changeset
71 try:
7f6b11a0d404 Exit quietly on keyboard interrupt.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 124
diff changeset
72 shell.run()
7f6b11a0d404 Exit quietly on keyboard interrupt.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 124
diff changeset
73 except KeyboardInterrupt:
7f6b11a0d404 Exit quietly on keyboard interrupt.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 124
diff changeset
74 pass
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
75