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: