annotate mamba/habitats/level.py @ 236:09247e08aeda

Refactor edit calling code. Tweak toolbar layout
author Neil Muller <drnlmuller@gmail.com>
date Wed, 14 Sep 2011 23:32:08 +0200
parents 119c0fb758c2
children fba74abad7b7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19
6d195a3a4557 Somewhere for levels to live.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
1 """Where a level object hides."""
6d195a3a4557 Somewhere for levels to live.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
2
119
119c0fb758c2 Move key handling into GameWidget and GameWidget into widgets.game.
Simon Cross <hodgestar@gmail.com>
parents: 111
diff changeset
3 from pygame.locals import KEYDOWN
61
fc4b7db1d832 Habitat switching.
Simon Cross <hodgestar@gmail.com>
parents: 24
diff changeset
4
fc4b7db1d832 Habitat switching.
Simon Cross <hodgestar@gmail.com>
parents: 24
diff changeset
5 from mamba.constants import ESCAPE_KEYS
fc4b7db1d832 Habitat switching.
Simon Cross <hodgestar@gmail.com>
parents: 24
diff changeset
6 from mamba.engine import Habitat, NewHabitatEvent
78
b1019923cb12 Direction control for snake.
Simon Cross <hodgestar@gmail.com>
parents: 72
diff changeset
7 from mamba.world import World
119
119c0fb758c2 Move key handling into GameWidget and GameWidget into widgets.game.
Simon Cross <hodgestar@gmail.com>
parents: 111
diff changeset
8 from mamba.widgets.game import GameWidget
19
6d195a3a4557 Somewhere for levels to live.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
9 from mamba.level import Level
6d195a3a4557 Somewhere for levels to live.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
10
6d195a3a4557 Somewhere for levels to live.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
11
6d195a3a4557 Somewhere for levels to live.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
12 class LevelHabitat(Habitat):
6d195a3a4557 Somewhere for levels to live.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
13 def __init__(self, level_name):
24
30d4f3e62bcf Refactor widgets *again*, add container to Habitat
Stefano Rivera <stefano@rivera.za.net>
parents: 19
diff changeset
14 super(LevelHabitat, self).__init__()
78
b1019923cb12 Direction control for snake.
Simon Cross <hodgestar@gmail.com>
parents: 72
diff changeset
15 level = Level(level_name)
119
119c0fb758c2 Move key handling into GameWidget and GameWidget into widgets.game.
Simon Cross <hodgestar@gmail.com>
parents: 111
diff changeset
16 world = World(level)
119c0fb758c2 Move key handling into GameWidget and GameWidget into widgets.game.
Simon Cross <hodgestar@gmail.com>
parents: 111
diff changeset
17 game_widget = GameWidget(world)
111
0c1005c76c87 More worldify.
Simon Cross <hodgestar@gmail.com>
parents: 79
diff changeset
18 self.container.add(game_widget)
61
fc4b7db1d832 Habitat switching.
Simon Cross <hodgestar@gmail.com>
parents: 24
diff changeset
19 self.container.add_callback(KEYDOWN, self.keydown_event)
111
0c1005c76c87 More worldify.
Simon Cross <hodgestar@gmail.com>
parents: 79
diff changeset
20
61
fc4b7db1d832 Habitat switching.
Simon Cross <hodgestar@gmail.com>
parents: 24
diff changeset
21 def keydown_event(self, ev, widget):
fc4b7db1d832 Habitat switching.
Simon Cross <hodgestar@gmail.com>
parents: 24
diff changeset
22 if ev.key in ESCAPE_KEYS:
62
40be38f4427c Bug squashing.
Simon Cross <hodgestar@gmail.com>
parents: 61
diff changeset
23 from mamba.habitats.mainmenu import MainMenu
61
fc4b7db1d832 Habitat switching.
Simon Cross <hodgestar@gmail.com>
parents: 24
diff changeset
24 NewHabitatEvent.post(MainMenu())
72
095914aee329 Return True from keydown_event so that the container knows the event has been handled.
Simon Cross <hodgestar@gmail.com>
parents: 62
diff changeset
25 return True