Mercurial > sypikslang
diff gamelib/gui_base.py @ 68:7309392d9ca9
fixed widget drawing bugs
author | Rizmari Versfeld <rizziepit@gmail.com> |
---|---|
date | Tue, 08 May 2012 23:05:58 +0200 |
parents | 24f0707695b4 |
children | 626b1eaec13c |
line wrap: on
line diff
--- a/gamelib/gui_base.py Tue May 08 22:28:00 2012 +0200 +++ b/gamelib/gui_base.py Tue May 08 23:05:58 2012 +0200 @@ -104,6 +104,8 @@ def draw(self, screen): if self.background_colour: self.surface.fill(self.background_colour) + else: + self.surface.fill((0, 0, 0, 255)) if self.background_image: self.surface.blit(self.background_image, (0, 0)) self.draw_children(self.surface) @@ -155,7 +157,7 @@ def __init__(self, rect, normal_drawable, down_drawable, text, font, shadow): super(TextButton, self).__init__(rect, normal_drawable, down_drawable) - self.surface = Surface((rect[2], rect[3])) + self.surface = Surface((rect[2], rect[3]), pygame.SRCALPHA) self.text = text self.font = font self.shadow = shadow @@ -163,14 +165,19 @@ def _draw_text(self): self.font.set_bold(True) - self.text_surface = self.font.render(self.text, True, (128, 128, 128)) + self.text_surface = self.font.render(self.text, True, (0, 0, 0)) + size = self.font.size(self.text) if self.shadow: - shadow = self.font.render(self.text, True, (0, 0, 0)) - self.text_surface.blit(shadow, (-2, -2)) - self.font.set_bold(False) - size = self.font.size(self.text) + shadow = self.font.render(self.text, True, (128, 128, 128)) + temp_surface = Surface((shadow.get_width() + 2, shadow.get_width() + 2), pygame.SRCALPHA) + temp_surface.fill((255, 255, 255, 0)) + temp_surface.blit(shadow, (2, 2)) + temp_surface.blit(self.text_surface, (0, 0)) + self.text_surface = temp_surface + size = [s + 2 for s in size] self.text_offset = ((self.rect[2] - size[0]) / 2, (self.rect[3] - size[1]) / 2) + self.font.set_bold(False) def draw(self, surface): self.surface.fill((0, 0, 0, 0)) @@ -183,7 +190,7 @@ def __init__(self, rect, text, font, color): super(TextLabel, self).__init__(rect) - self.surface = Surface((rect[2], rect[3])) + self.surface = Surface((rect[2], rect[3]), pygame.SRCALPHA) self.text = text self.font = font self.color = color