Mercurial > nagslang
changeset 647:aeb366d97774
Show splash image on startup
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 08 Sep 2013 02:02:09 +0200 |
parents | 45dbbc4c1fd0 |
children | 9346fa37f887 |
files | nagslang/engine.py nagslang/game_object.py nagslang/render.py nagslang/screens/area.py |
diffstat | 4 files changed, 33 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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:
--- 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
--- 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
--- 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))