Mercurial > dw
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)
