Mercurial > sypikslang
changeset 68:7309392d9ca9
fixed widget drawing bugs
author | Rizmari Versfeld <rizziepit@gmail.com> |
---|---|
date | Tue, 08 May 2012 23:05:58 +0200 |
parents | 06c8539df478 |
children | 626b1eaec13c |
files | gamelib/engine.py gamelib/gui.py gamelib/gui_base.py |
diffstat | 3 files changed, 17 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/gamelib/engine.py Tue May 08 22:28:00 2012 +0200 +++ b/gamelib/engine.py Tue May 08 23:05:58 2012 +0200 @@ -66,8 +66,8 @@ clock.tick(FPS) def draw(self): - for view in self._window_stack: - view.draw(self._screen) + #for view in self._window_stack: + self._window_stack[-1].draw(self._screen) pygame.display.flip() def process_input(self):
--- a/gamelib/gui.py Tue May 08 22:28:00 2012 +0200 +++ b/gamelib/gui.py Tue May 08 23:05:58 2012 +0200 @@ -20,7 +20,7 @@ BG_IMAGE_NORMAL = image.load(data.filepath('images/button_normal.png')) BG_IMAGE_DOWN = image.load(data.filepath('images/button_down.png')) - def __init__(self, pos, text, font=font_large, shadow=True): + def __init__(self, pos, text, font=font_large, shadow=False): rect1 = (0, 0, self.WIDTH, self.HEIGHT) n = ImageDrawable(rect1, self.BG_IMAGE_NORMAL) d = ImageDrawable(rect1, self.BG_IMAGE_DOWN)
--- 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