From a693ef802c5ae8d895b535f09f77ff27cd492a3f Mon Sep 17 00:00:00 2001 From: Alan Aguiar Date: Sun, 06 May 2012 09:37:23 +0000 Subject: change MultiLabel to heredates from CSprite --- diff --git a/src/api/MultiLabel.py b/src/api/MultiLabel.py index 2a013b8..53c6445 100755 --- a/src/api/MultiLabel.py +++ b/src/api/MultiLabel.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- +from Sprite import CSprite import pygame -class CMultiLabel(pygame.sprite.Sprite): +class CMultiLabel(CSprite): """ accepts a list of strings, creates a multi-line label to display text same properties as label except textLines @@ -13,28 +14,38 @@ class CMultiLabel(pygame.sprite.Sprite): """ def __init__(self): - pygame.sprite.Sprite.__init__(self) - self.textLines = ["This", "is", "sample", "text"] + CSprite.__init__(self) + self.text = 'This\nis\nsample\ntext' #self.font = pygame.font.Font("freesansbold.ttf", 20) #TODO: Esto no debe ir aca. Porque este no anda y el de CSuperSprite si ? #pygame.font.init() #print "CMultilabel" #print pygame.font.get_init() - self.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 30) + self.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.fgColor = ((0x00, 0x00, 0x00)) self.bgColor = ((0xFF, 0xFF, 0xFF)) - self.center = (100, 100) - self.size = (150, 100) + self.center = (0, 0) + self.size = (300, 150) self.createImage() - + + def setSize(self, x, y): + self.size = (x, y) + self.createImage() + + def setText(self, aText): + self.text = aText + self.createImage() + def createImage(self): self.image = pygame.Surface(self.size) self.image.fill(self.bgColor) + self.textLines = self.text.split('\n') numLines = len(self.textLines) vSize = self.image.get_height() / numLines for lineNum in range(numLines): currentLine = self.textLines[lineNum] + fontSurface = self.font.render(currentLine, True, self.fgColor, self.bgColor) #center the text xPos = (self.image.get_width() - fontSurface.get_width())/2 @@ -43,6 +54,7 @@ class CMultiLabel(pygame.sprite.Sprite): self.rect = self.image.get_rect() self.rect.center = self.center + self.setImage(self.image) #def update(self): #print "update de multilabel" -- cgit v0.9.1