changeset 52:1f9c898baabc

Bugfix: messages left trash when moving out of the map
author Radomir Dopieralski <moindev@sheep.art.pl>
date Tue, 01 Jan 2008 15:38:37 +0100
parents 2b3568be1ae6
children c60b2be0c52e
files lib/display.py lib/mesg.py
diffstat 2 files changed, 8 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lib/display.py	Wed Dec 26 17:21:57 2007 +0100
+++ b/lib/display.py	Tue Jan 01 15:38:37 2008 +0100
@@ -130,15 +130,15 @@
             sprite.rect.move_ip(dx, dy)
 
     def clear_func(self, screen, rect):
-        """Clean up after sprites taking scrolling into account"""
+        """
+        Clean up after sprites, taking scrolling into account and
+        handling sprites that are out of map.
+        """
         
         source = rect.move(-self.scrollpos[0], -self.scrollpos[1])
-        source = source.clip(self.background.get_clip())
-        if source.width==0 or source.height==0:
-            patch = pygame.Surface((rect.width, rect.height+2))
-        else:
-            patch = self.background.subsurface(source)
-        screen.blit(patch, rect)
+        if not self.background.get_rect().contains(source):
+            screen.fill((0,0,0),rect)
+        screen.blit(self.background, rect, source)
 
 
     def refresh(self):
--- a/lib/mesg.py	Wed Dec 26 17:21:57 2007 +0100
+++ b/lib/mesg.py	Tue Jan 01 15:38:37 2008 +0100
@@ -18,7 +18,7 @@
         self.alpha = 255
         self.rect = self.image.get_rect()
         self.image.set_alpha(0)
-        self.rect.center = sprite.rect.center
+        self.rect.center = sprite.rect.midtop
         self.sprite = sprite
         self.delay = delay
         display.effects.add(self)