Mercurial > nagslang
changeset 190:97627a999042
Don't render the old scene with the protagnist's new position during scene changes
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Tue, 03 Sep 2013 21:44:55 +0200 |
parents | b6c1a9448d7d |
children | e080fcd07fa9 |
files | nagslang/screens/area.py |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/nagslang/screens/area.py Tue Sep 03 21:09:55 2013 +0200 +++ b/nagslang/screens/area.py Tue Sep 03 21:44:55 2013 +0200 @@ -64,6 +64,7 @@ class AreaScreen(Screen): def setup(self): + self._disable_render = False # Avoid redrawing on scene changes self.keys = ControlKeys() self._level = Level(self.name) self._level.load(self.space) @@ -126,7 +127,9 @@ self.protagonist.set_position(ev.dest_pos) if ev.destination != self.name: # Go to anther screen + self._disable_render = True ScreenChange.post(ev.destination, self.protagonist) + return # else we're teleporting within the screen, and just the # position change is enough self.keys.handle_event(ev) @@ -157,7 +160,8 @@ return pygame.rect.Rect(x, y, display_size[0], display_size[1]) def render(self, surface): - #surface.fill(pygame.color.Color(0, 0, 0)) + if self._disable_render: + return background = self._level.get_background() mysurface = background.copy() for drawable in self._drawables: