+# coding: UTF-8
"""
-Main menu scene.
+Credits scene.
"""
+import pygame
import pygame.locals as pgl
+from naja.constants import KEYS, FPS
from naja.scenes.scene import Scene
-from naja.widgets.text import TextWidget
+from naja.utils import Flashlight
+from naja.widgets.text import TextWidget, TextBoxWidget
+from naja.widgets.image_box import ImageBox
from naja.events import SceneChangeEvent
+
class CreditsScene(Scene):
+ """
+ List those responsible.
+ """
+
+ def __init__(self, state):
+ super(CreditsScene, self).__init__(state)
+ self.flashlight = Flashlight(int(1.5 * FPS))
- base_menu = None
+ background = ImageBox(
+ (0, 0), "screens/splash.png")
+ self.add(background)
+ self.add(TextWidget(
+ (400, 300), 'CREDITS', colour='white', centre=True))
- def __init__(self):
- super(CreditsScene, self).__init__()
- self.widgets.append(TextWidget((60, 10), 'Credits', fontsize=32,
- colour='white'))
- self.widgets.append(TextWidget((60, 30),
- 'Your mom\n'
- 'A stranger', fontsize=32,
- colour='white'))
+ self.credits = TextBoxWidget(
+ (400, 340), '\n'.join([
+ 'A game about robots and bits and other things',
+ '',
+ 'by',
+ '',
+ u'Adrianna PiĆska, David Sharpe, Jeremy Thurgood, '
+ u'Neil Muller, Simon Cross & Stefano Rivera',
+ '',
+ 'Special thanks to:',
+ '',
+ 'Desilu Crossman',
+ 'for snacks and tutorial inspiration',
+ '',
+ 'Bearnard Hibbins, Graham Inggs,',
+ 'and William Stewart',
+ 'for playtesting and finding bugs',
+ '',
+ 'Music by Rolemusic:',
+ 'http://rolemusic.sawsquarenoise.com/',
+ '',
+ 'Out of credits. Insert coin.',
+ '(Press ESC to return to the menu.)',
+ ]),
+ colour='white', padding=1,
+ bg_colour=(0, 0, 0, 0), centre=True,
+ box_width=780, view_port=(780, 250))
+ self.add(self.credits)
+ def render_scene(self, surface):
+ if self.flashlight is not None:
+ if self.flashlight.tick():
+ fake_event = pygame.event.Event(pgl.KEYDOWN, key=pgl.K_DOWN)
+ self.credits.handle_event(fake_event)
def handle_event(self, ev):
- if ev.type == pgl.KEYUP and ev.key in (pgl.K_q, pgl.K_ESCAPE):
+ if ev.type == pgl.KEYDOWN:
+ self.flashlight = None
+ return super(CreditsScene, self).handle_event(ev)
+
+ def handle_scene_event(self, ev):
+ if ev.type == pgl.KEYDOWN and ev.key in KEYS.QUIT:
from naja.scenes.menu import MenuScene
- menu_scene = MenuScene()
- SceneChangeEvent.post(menu_scene)
+ SceneChangeEvent.post(MenuScene)
return