X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fscenes%2Fcredits.py;h=b3fd4bd0c1c752ee58e7d13d78a948c9e67b8eb3;hb=aa61c9babaa76bd6db7f4a6b57a29c3617c769ca;hp=1558142d88ce5e70ffaf596f69d47af1f1fbd3d7;hpb=3e460450c1baa9af43f5391ba4673a599071656b;p=naja.git diff --git a/naja/scenes/credits.py b/naja/scenes/credits.py index 1558142..b3fd4bd 100644 --- a/naja/scenes/credits.py +++ b/naja/scenes/credits.py @@ -1,12 +1,15 @@ +# coding: UTF-8 """ Credits scene. """ +import pygame import pygame.locals as pgl -from naja.constants import KEYS +from naja.constants import KEYS, FPS from naja.scenes.scene import Scene from naja.widgets.text import TextWidget, TextBoxWidget +from naja.widgets.image_box import ImageBox from naja.events import SceneChangeEvent @@ -17,25 +20,55 @@ class CreditsScene(Scene): def __init__(self, state): super(CreditsScene, self).__init__(state) + self.autoscroll = 0 + + background = ImageBox( + (0, 0), "screens/splash.png") + self.add(background) self.add(TextWidget( - (400, 30), 'Credits', fontsize=32, colour='white', centre=True)) - self.add(TextWidget( - (400, 80), 'A game about robots and bits and other things', - fontsize=32, colour='white', centre=True)) - self.add(TextWidget( - (400, 120), 'by', fontsize=32, colour='white', centre=True)) - self.add(TextBoxWidget( - (20, 160), 'Adrianna Pinska, David Sharpe, Jeremy Thurgood, ' - 'Neil Muller, Simon Cross & Stefano Rivera', - fontsize=32, colour='white', padding=1, border=1, - bg_colour='black', border_colour='black', - box_width=640)) - self.add(TextBoxWidget( - (30, 280), - 'Music by Rolemusic: http://rolemusic.sawsquarenoise.com/', - fontsize=32, colour='white', padding=1, border=1, - bg_colour='black', border_colour='black', - box_width=640)) + (400, 300), 'CREDITS', colour='white', centre=True)) + + 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.autoscroll is not None: + self.autoscroll += 1 + if self.autoscroll >= 1.5 * FPS: + fake_event = pygame.event.Event(pgl.KEYDOWN, key=pgl.K_DOWN) + self.credits.handle_event(fake_event) + self.autoscroll = 0 + + def handle_event(self, ev): + if ev.type == pgl.KEYDOWN: + self.autoscroll = 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: