Mercurial > skaapsteker
changeset 46:416e40b77924
Multi-line text
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 03 Apr 2011 20:59:05 +0200 |
parents | 7f7b4bfbaf0e |
children | 215e2e74c244 |
files | scripts/level-editor skaapsteker/widgets/text.py |
diffstat | 2 files changed, 14 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/level-editor Sun Apr 03 20:48:26 2011 +0200 +++ b/scripts/level-editor Sun Apr 03 20:59:05 2011 +0200 @@ -54,9 +54,9 @@ level.draw(level_surface) screen_surface.blit(level_surface, (0, 0), clip_rect) - text = skaapsteker.widgets.text.Text("Level: %s. Offset: %r" + text = skaapsteker.widgets.text.Text("Level: %s.\nOffset: %r" % (levelname, position), - colour='white') + color='white') text.draw(screen_surface, (10, 10)) pygame.display.flip()
--- a/skaapsteker/widgets/text.py Sun Apr 03 20:48:26 2011 +0200 +++ b/skaapsteker/widgets/text.py Sun Apr 03 20:59:05 2011 +0200 @@ -11,13 +11,22 @@ loaded_fonts = {} class Text(object): - def __init__(self, text, font='sans', size=16, colour='black'): + def __init__(self, text, font='sans', size=16, color='black'): self.text = text self.font = load_font(font, size) - self.surface = self.font.render(self.text, True, pygame.Color(colour)) + self.color = pygame.Color(color) + self.surfaces = [self.font.render(line, True, self.color) + for line in self.text.split('\n')] def draw(self, surface, pos): - surface.blit(self.surface, pos) + if isinstance(pos, pygame.Rect): + pos = pos.copy() + else: + pos = pygame.Rect(pos, (0, 0)) + + for line in self.surfaces: + surface.blit(line, pos) + pos.move_ip(0, self.font.get_linesize()) def load_font(name, size): if (name, size) not in loaded_fonts: