changeset 211:434b5a3aaaff

Pass display offset to overlays for when the display is larger than the level
author Neil Muller <drnlmuller@gmail.com>
date Wed, 04 Sep 2013 00:11:29 +0200
parents f2128ddc0acd
children ad9cdd130654
files nagslang/game_object.py nagslang/screens/area.py
diffstat 2 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/nagslang/game_object.py	Tue Sep 03 23:58:57 2013 +0200
+++ b/nagslang/game_object.py	Wed Sep 04 00:11:29 2013 +0200
@@ -90,7 +90,7 @@
     def set_game_object(self, game_object):
         self.game_object = game_object
 
-    def render(self, surface):
+    def render(self, surface, display_offset):
         pass
 
     def is_visible(self):
@@ -102,7 +102,13 @@
         self.text = text
         self.widget = LabelWidget((20, 20), self.text)
 
-    def render(self, surface):
+    def render(self, surface, display_offset):
+        x, y = 20, 20
+        if display_offset[0] < 0:
+            x += abs(display_offset[0])
+        if display_offset[1] < 0:
+            y += abs(display_offset[1])
+        self.widget.rect.topleft = (x, y)
         self.widget.draw(surface)
 
 
--- a/nagslang/screens/area.py	Tue Sep 03 23:58:57 2013 +0200
+++ b/nagslang/screens/area.py	Wed Sep 04 00:11:29 2013 +0200
@@ -173,7 +173,7 @@
         surface.blit(mysurface, (0, 0), render_rect)
         for overlay in self._level.overlay_drawables:
             if overlay.is_visible():
-                overlay.render(surface)
+                overlay.render(surface, render_rect.topleft)
 
     def tick_protagonist(self):
         dx, dy = self.keys.get_direction()