# HG changeset patch # User Stefano Rivera # Date 1301857145 -7200 # Node ID 416e40b779249d8113611fbcb7c7baa202cdfc64 # Parent 7f7b4bfbaf0e6afee1160bd8d4dde5b429298743 Multi-line text diff -r 7f7b4bfbaf0e -r 416e40b77924 scripts/level-editor --- 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() diff -r 7f7b4bfbaf0e -r 416e40b77924 skaapsteker/widgets/text.py --- 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: