annotate pyntnclick/main.py @ 548:ded4324b236e pyntnclick

Moved stuff around, broke everything.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 11 Feb 2012 13:10:18 +0200
parents gamelib/main.py@02cf5537d74e
children 38fb04728ac5
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
532
02cf5537d74e PEP-8 main.
Jeremy Thurgood <firxen@gmail.com>
parents: 447
diff changeset
22 from constants import (
02cf5537d74e PEP-8 main.
Jeremy Thurgood <firxen@gmail.com>
parents: 447
diff changeset
23 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
24 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
25 import state
447
9c285017535d Added icon and title to window
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 443
diff changeset
26 import data
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
27
532
02cf5537d74e PEP-8 main.
Jeremy Thurgood <firxen@gmail.com>
parents: 447
diff changeset
28
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
29 def parse_args(args):
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
30 parser = OptionParser()
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
31 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
32 dest="sound", help="disable sound")
176
c6ea3b11514c Add --scene for selecting initial scene during debugging.
Simon Cross <simon@simonx>
parents: 149
diff changeset
33 if DEBUG:
c6ea3b11514c Add --scene for selecting initial scene during debugging.
Simon Cross <simon@simonx>
parents: 149
diff changeset
34 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
35 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
36 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
37 dest="rects", help="disable debugging rects")
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
38 opts, _ = parser.parse_args(args or [])
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
39 return opts
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
40
124
97322b78d1c1 Minor style cleanups
Neil Muller <neil@dip.sun.ac.za>
parents: 107
diff changeset
41
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
42 class MainShell(Shell):
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
43 def __init__(self, display):
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
44 Shell.__init__(self, display)
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
45 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
46 self.game_screen = GameScreen(self)
443
3dab4984cbd7 Redo way of reaching end screen
Neil Muller <neil@dip.sun.ac.za>
parents: 282
diff changeset
47 self.end_screen = EndScreen(self)
105
65976205fc2d Rough Stab at basic animation support
Neil Muller <neil@dip.sun.ac.za>
parents: 102
diff changeset
48 self.set_timer(FRAME_RATE)
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
49 self.show_screen(self.menu_screen)
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
50
532
02cf5537d74e PEP-8 main.
Jeremy Thurgood <firxen@gmail.com>
parents: 447
diff changeset
51
0
f2c3b516741b Theme is 'Caught'. Start with Skellington 1.9.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
52 def main():
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
53 opts = parse_args(sys.argv)
25
f9e697e0c6ba Don't initialise the entire pygame
Stefano Rivera <stefano@rivera.za.net>
parents: 24
diff changeset
54 pygame.display.init()
f9e697e0c6ba Don't initialise the entire pygame
Stefano Rivera <stefano@rivera.za.net>
parents: 24
diff changeset
55 pygame.font.init()
107
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
56 if opts.sound:
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
57 try:
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
58 pygame.mixer.init(FREQ, BITSIZE, CHANNELS, BUFFER)
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
59 except pygame.error, exc:
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
60 no_sound(exc)
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
61 else:
5213b45fcc7e Initial event sound support
Neil Muller <neil@dip.sun.ac.za>
parents: 105
diff changeset
62 # 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
63 disable_sound()
282
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
64 if DEBUG:
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
65 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
66 # debug the specified scene
fe899fb63866 Add option for turning off debugging rects while debugging.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 264
diff changeset
67 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
68 state.DEBUG_RECTS = opts.rects
532
02cf5537d74e PEP-8 main.
Jeremy Thurgood <firxen@gmail.com>
parents: 447
diff changeset
69 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
70 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
71 data.filepath('icons/suspended_sentence24x24.png')))
9c285017535d Added icon and title to window
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 443
diff changeset
72 pygame.display.set_caption("Suspended Sentence")
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents: 0
diff changeset
73 shell = MainShell(display)
149
7f6b11a0d404 Exit quietly on keyboard interrupt.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 124
diff changeset
74 try:
7f6b11a0d404 Exit quietly on keyboard interrupt.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 124
diff changeset
75 shell.run()
7f6b11a0d404 Exit quietly on keyboard interrupt.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 124
diff changeset
76 except KeyboardInterrupt:
7f6b11a0d404 Exit quietly on keyboard interrupt.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 124
diff changeset
77 pass