Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Aguiar <alanjas@hotmail.com>2013-08-22 03:05:47 (GMT)
committer Alan Aguiar <alanjas@hotmail.com>2013-08-22 03:05:47 (GMT)
commit607e097be91d3f709eafa672d90ad4bb8361096a (patch)
tree162a01e122c6cf1c70cdb6a67aaa91563c192fb5 /src
parent7f818d20c042597c4907a94d57a910bf18be6eac (diff)
update MultiLabel now inherits from pygame sprite
Diffstat (limited to 'src')
-rwxr-xr-xsrc/api/Label.py12
-rwxr-xr-xsrc/api/MultiLabel.py35
-rw-r--r--src/game/Area1Game4.py2
3 files changed, 29 insertions, 20 deletions
diff --git a/src/api/Label.py b/src/api/Label.py
index 51998a5..e0158cb 100755
--- a/src/api/Label.py
+++ b/src/api/Label.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
import pygame
+font_path = 'assets/fonts/'
class CLabel(pygame.sprite.Sprite):
""" a basic label
@@ -13,12 +14,13 @@ class CLabel(pygame.sprite.Sprite):
size: (width, height) of label
"""
- def __init__(self, fontName = "freesansbold.ttf"):
+ def __init__(self, fontName = "DejaVuSans.ttf", transparent=False):
pygame.sprite.Sprite.__init__(self)
- self.font = pygame.font.Font(fontName, 20)
+ self.font = pygame.font.Font(font_path + fontName, 20)
self.text = ""
self.fgColor = ((0x00, 0x00, 0x00))
self.bgColor = ((0xFF, 0xFF, 0xFF))
+ self.transparent = transparent
self.center = (0, 0)
self.size = (0, 0)
@@ -44,7 +46,11 @@ class CLabel(pygame.sprite.Sprite):
def _update_image(self):
self.image = pygame.Surface(self.size)
self.image.fill(self.bgColor)
- fontSurface = self.font.render(self.text, True, self.fgColor, self.bgColor)
+ if self.transparent:
+ self.image.set_colorkey(self.bgColor)
+ fontSurface = self.font.render(self.text, True, self.fgColor)
+ else:
+ fontSurface = self.font.render(self.text, True, self.fgColor, self.bgColor)
#center the text
xPos = (self.image.get_width() - fontSurface.get_width())/2
self.image.blit(fontSurface, (xPos, 0))
diff --git a/src/api/MultiLabel.py b/src/api/MultiLabel.py
index 956adf3..95dd2a1 100755
--- a/src/api/MultiLabel.py
+++ b/src/api/MultiLabel.py
@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
-from Sprite import CSprite
import pygame
+font_path = 'assets/fonts/'
-class CMultiLabel(CSprite):
+class CMultiLabel(pygame.sprite.Sprite):
""" accepts a string separate with \n, creates a multi-line
label to display text
same properties as label except textLines
@@ -13,32 +13,36 @@ class CMultiLabel(CSprite):
least 30 pixels per line (with the default font)
"""
- def __init__(self, transparent=False):
- CSprite.__init__(self)
+ def __init__(self, fontName = "DejaVuSans.ttf", transparent=False):
+ pygame.sprite.Sprite.__init__(self)
+ self.font = pygame.font.Font(font_path + fontName, 20)
self.text = 'This\nis\nsample\ntext'
- #self.font = pygame.font.Font("freesansbold.ttf", 20)
-
- self.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20)
self.fgColor = ((0x00, 0x00, 0x00))
self.bgColor = ((0xFF, 0xFF, 0xFF))
self.transparent = transparent
self.center = (0, 0)
- self.size = (300, 150)
- self.createImage()
+ self.size = (0, 0)
def set_center(self, aCenter):
self.center = aCenter
- self.createImage()
def set_size(self, aSize):
self.size = aSize
- self.createImage()
-
+ self._update_image()
+
+ def set_fgColor(self, afgColor):
+ self.fgColor = afgColor
+ self._update_image()
+
+ def set_bgColor(self, abgColor):
+ self.bgColor = abgColor
+ self._update_image()
+
def set_text(self, aText):
self.text = aText
- self.createImage()
-
- def createImage(self):
+ self._update_image()
+
+ def _update_image(self):
self.image = pygame.Surface(self.size)
self.image.fill(self.bgColor)
if self.transparent:
@@ -61,7 +65,6 @@ class CMultiLabel(CSprite):
self.rect = self.image.get_rect()
self.rect.center = self.center
- self.setImage(self.image)
def update(self):
self.rect = self.image.get_rect()
diff --git a/src/game/Area1Game4.py b/src/game/Area1Game4.py
index 1e37e09..1ea901e 100644
--- a/src/game/Area1Game4.py
+++ b/src/game/Area1Game4.py
@@ -86,7 +86,7 @@ class CArea1Game4(CGameState):
self.mQuestionsL = range(6)
random.shuffle(self.mQuestionsL)
- self.mLabelQuestion = CMultiLabel(True)
+ self.mLabelQuestion = CMultiLabel(transparent=True)
self.mLabelQuestion.set_center((600, 250))
self.mLabelQuestion.set_size((400, 100))
self.mLabelQuestion.set_text(self.mQuestions[self.mQuestionsL[self.mCurrentQuestion]][0])