# HG changeset patch # User Stefano Rivera # Date 1378598529 -7200 # Node ID aeb366d97774396702a9944eb9788da776322c05 # Parent 45dbbc4c1fd0c42922b1e4402362ac5828a24766 Show splash image on startup diff -r 45dbbc4c1fd0 -r aeb366d97774 nagslang/engine.py --- a/nagslang/engine.py Sun Sep 08 01:49:23 2013 +0200 +++ b/nagslang/engine.py Sun Sep 08 02:02:09 2013 +0200 @@ -37,6 +37,7 @@ # http://stackoverflow.com/q/16442573/8629 pygame.event.post(pygame.event.Event(pgl.VIDEORESIZE, size=(0, 0), w=0, h=0)) + self._current_screen.splash() def change_screen(self, new_screen): if self._current_screen is not None: diff -r 45dbbc4c1fd0 -r aeb366d97774 nagslang/game_object.py --- a/nagslang/game_object.py Sun Sep 08 01:49:23 2013 +0200 +++ b/nagslang/game_object.py Sun Sep 08 02:02:09 2013 +0200 @@ -321,6 +321,23 @@ return Result(remove=[self]) +class SplashImage(GameObject): + def __init__(self, image, timeout): + super(SplashImage, self).__init__( + None, + render.NullRenderer(), + puzzle.YesPuzzler(), + render.ImageOverlay(image), + ) + self.add_timer('timeout', timeout) + self.start_timer('timeout') + + def update(self, dt): + super(SplashImage, self).update(dt) + if not self.check_timer('timeout'): + return Result(remove=[self]) + + class FloorLight(GameObject): zorder = ZORDER_FLOOR diff -r 45dbbc4c1fd0 -r aeb366d97774 nagslang/render.py --- a/nagslang/render.py Sun Sep 08 01:49:23 2013 +0200 +++ b/nagslang/render.py Sun Sep 08 02:02:09 2013 +0200 @@ -242,6 +242,16 @@ self.widget.draw(surface) +class ImageOverlay(Overlay): + def __init__(self, image): + self.image = image + + def render(self, surface, display_offset, max_width): + x = (surface.get_width() - self.image.get_width()) / 2 + y = (surface.get_height() - self.image.get_height()) / 2 + surface.blit(self.image, (x, y)) + + class TiledRenderer(Renderer): """Tile the given image to fit the given outline diff -r 45dbbc4c1fd0 -r aeb366d97774 nagslang/screens/area.py --- a/nagslang/screens/area.py Sun Sep 08 01:49:23 2013 +0200 +++ b/nagslang/screens/area.py Sun Sep 08 02:02:09 2013 +0200 @@ -13,6 +13,7 @@ CMD_TOGGLE_FORM, CMD_ACTION, PROTAGONIST_HEALTH_MAX_LEVEL) from nagslang.events import ( AddDrawableEvent, DeathEvent, DoorEvent, QuitEvent, ScreenChange) +from nagslang.game_object import SplashImage from nagslang.level import Level from nagslang.screens.base import Screen from nagslang.sound import sound @@ -325,3 +326,7 @@ y_pos = surface.get_height() - 20 - inv_surf.get_height() x_pos = 130 + padding surface.blit(inv_surf, (x_pos, y_pos)) + + def splash(self): + AddDrawableEvent.post(SplashImage(resources.get_image('title.png'), + 10))