diff options
author | Alan Aguiar <alanjas@hotmail.com> | 2013-08-22 03:18:52 (GMT) |
---|---|---|
committer | Alan Aguiar <alanjas@hotmail.com> | 2013-08-22 03:18:52 (GMT) |
commit | cd58e868d23203bea1562813a3ec208982100eaa (patch) | |
tree | 2c16f3b7c5767426f6f26a7b7223bae982ecbf18 /src | |
parent | 607e097be91d3f709eafa672d90ad4bb8361096a (diff) |
multi label now inherits from common CLabel
Diffstat (limited to 'src')
-rwxr-xr-x | src/api/Button.py | 4 | ||||
-rwxr-xr-x | src/api/Label.py | 4 | ||||
-rwxr-xr-x | src/api/MultiLabel.py | 50 | ||||
-rwxr-xr-x | src/api/Sprite.py | 1 |
4 files changed, 14 insertions, 45 deletions
diff --git a/src/api/Button.py b/src/api/Button.py index 13c4e9d..d3ab063 100755 --- a/src/api/Button.py +++ b/src/api/Button.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*-
import pygame
-import api.Label
from api.Label import CLabel
from Mouse import *
@@ -46,6 +45,3 @@ class CButton(CLabel): if self.rect.collidepoint(CMouse().getPos()):
print("release in button")
self.mclicked = True
-
- def destroy(self):
- pass
diff --git a/src/api/Label.py b/src/api/Label.py index e0158cb..117a213 100755 --- a/src/api/Label.py +++ b/src/api/Label.py @@ -59,3 +59,7 @@ class CLabel(pygame.sprite.Sprite): def update(self):
self.rect = self.image.get_rect()
self.rect.center = self.center
+
+ def destroy(self):
+ self.font = None
+ self.image = None
diff --git a/src/api/MultiLabel.py b/src/api/MultiLabel.py index 95dd2a1..962fb19 100755 --- a/src/api/MultiLabel.py +++ b/src/api/MultiLabel.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*-
import pygame
+from api.Label import CLabel
+
font_path = 'assets/fonts/'
-class CMultiLabel(pygame.sprite.Sprite):
+class CMultiLabel(CLabel):
""" accepts a string separate with \n, creates a multi-line
label to display text
same properties as label except textLines
@@ -14,46 +16,18 @@ class CMultiLabel(pygame.sprite.Sprite): """
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.fgColor = ((0x00, 0x00, 0x00))
- self.bgColor = ((0xFF, 0xFF, 0xFF))
- self.transparent = transparent
- self.center = (0, 0)
- self.size = (0, 0)
-
- def set_center(self, aCenter):
- self.center = aCenter
-
- def set_size(self, aSize):
- self.size = aSize
- 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._update_image()
-
+ CLabel.__init__(self, fontName, transparent)
+
def _update_image(self):
self.image = pygame.Surface(self.size)
self.image.fill(self.bgColor)
if self.transparent:
self.image.set_colorkey(self.bgColor)
-
- self.textLines = self.text.split('\n')
- numLines = len(self.textLines)
+ textLines = self.text.split('\n')
+ numLines = len(textLines)
vSize = self.image.get_height() / numLines
-
for lineNum in range(numLines):
- currentLine = self.textLines[lineNum]
+ currentLine = textLines[lineNum]
if self.transparent:
fontSurface = self.font.render(currentLine, True, self.fgColor)
else:
@@ -62,10 +36,4 @@ class CMultiLabel(pygame.sprite.Sprite): xPos = (self.image.get_width() - fontSurface.get_width())/2
yPos = lineNum * vSize
self.image.blit(fontSurface, (xPos, yPos))
-
- self.rect = self.image.get_rect()
- self.rect.center = self.center
-
- def update(self):
- self.rect = self.image.get_rect()
- self.rect.center = self.center
+ self.update()
diff --git a/src/api/Sprite.py b/src/api/Sprite.py index c4563d9..881ecdd 100755 --- a/src/api/Sprite.py +++ b/src/api/Sprite.py @@ -15,6 +15,7 @@ from Mouse import * # TODO: This class is a rotating sprite. update() in each frame rotates the sprite
# image, so this is inneficient for sprites that does not rotate continuoulsy.
+
class CSprite(pygame.sprite.Sprite):
# TODO: Como defino aca los vectores ?
|