annotate nagslang/screens/menu.py @ 180:026297a03963

Add DoorEvent and tweak ScreenChange to keep more state when the player goes through a door
author Neil Muller <drnlmuller@gmail.com>
date Tue, 03 Sep 2013 16:58:45 +0200
parents 58505d3482b6
children e89a43d208b9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
1 """Display a menu screen."""
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
2
19
113f31bd9d49 Clean-up imports.
Simon Cross <hodgestar@gmail.com>
parents: 18
diff changeset
3 import pygame
18
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
4
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
5 from nagslang.screens.base import Screen
20
347667c941de Hook up area.
Simon Cross <hodgestar@gmail.com>
parents: 19
diff changeset
6 from nagslang.events import QuitEvent, ScreenChange
29
58505d3482b6 Text on the menu screen
Stefano Rivera <stefano@rivera.za.net>
parents: 21
diff changeset
7 from nagslang.widgets.text import TextWidget
18
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
8
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
9
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
10 class MenuScreen(Screen):
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
11
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
12 def handle_event(self, ev):
20
347667c941de Hook up area.
Simon Cross <hodgestar@gmail.com>
parents: 19
diff changeset
13 if ev.type == pygame.locals.KEYDOWN:
347667c941de Hook up area.
Simon Cross <hodgestar@gmail.com>
parents: 19
diff changeset
14 if ev.key == pygame.locals.K_ESCAPE:
347667c941de Hook up area.
Simon Cross <hodgestar@gmail.com>
parents: 19
diff changeset
15 QuitEvent.post()
347667c941de Hook up area.
Simon Cross <hodgestar@gmail.com>
parents: 19
diff changeset
16 elif ev.key == pygame.locals.K_1:
180
026297a03963 Add DoorEvent and tweak ScreenChange to keep more state when the player goes through a door
Neil Muller <drnlmuller@gmail.com>
parents: 29
diff changeset
17 ScreenChange.post('level1', None)
18
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
18
9ecb1d222ee0 Screens.
Simon Cross <hodgestar@gmail.com>
parents:
diff changeset
19 def render(self, surface):
29
58505d3482b6 Text on the menu screen
Stefano Rivera <stefano@rivera.za.net>
parents: 21
diff changeset
20 surface.fill(pygame.color.Color(255, 255, 255))
58505d3482b6 Text on the menu screen
Stefano Rivera <stefano@rivera.za.net>
parents: 21
diff changeset
21 TextWidget((10, 10), 'Menu').draw(surface)
58505d3482b6 Text on the menu screen
Stefano Rivera <stefano@rivera.za.net>
parents: 21
diff changeset
22 TextWidget((10, 30), 'Press 1 to start').draw(surface)