annotate nagslang/screens/playerdied.py @ 378:8069c9be1c3e

Create a nagslang.collectable module for collectables
author Stefano Rivera <stefano@rivera.za.net>
date Fri, 06 Sep 2013 23:07:27 +0200
parents ef4f6375c0b5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
285
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
1 """Display a menu screen."""
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
2
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
3 import pygame
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
4
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
5 from nagslang.screens.base import Screen
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
6 from nagslang.events import ScreenChange
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
7 from nagslang.widgets.text import TextWidget, MultiLineWidget
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
8
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
9
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
10 class PlayerDiedScreen(Screen):
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
11 def setup(self):
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
12 # Position is hacked later
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
13 self.widgets = [
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
14 TextWidget((10, 10), 'You Died!', fontsize=20),
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
15 TextWidget((40, 70), 'Press escape to return to the menu.'),
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
16 MultiLineWidget((60, 120), self.world.get_formatted_stats()),
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
17 ]
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
18
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
19 def handle_event(self, ev):
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
20 if ev.type == pygame.locals.KEYDOWN:
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
21 if ev.key == pygame.locals.K_ESCAPE:
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
22 self.world.protagonist.reset()
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
23 self.world.protagonist.set_position((350, 300))
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
24 ScreenChange.post('menu')
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
25
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
26 def render(self, surface):
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
27 surface.fill(pygame.color.Color(255, 255, 255))
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
28 for widget in self.widgets:
ef4f6375c0b5 Basic death
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
29 widget.draw(surface)