def __init__(self, state):
super(CreditsScene, self).__init__(state)
- self.add(TextWidget((360, 160), 'Credits', fontsize=32,
+ self.add(TextWidget((480, 160), 'Credits', fontsize=32,
colour='white'))
self.add(TextBoxWidget((120, 30),
'Your mom '
import pygame
-from naja.constants import FONT, FONT_SIZE
+from naja.constants import FONT, FONT_SIZE, EIGHT_BIT_SCALE
from naja.widgets.base import Widget
from naja.resources import resources
from naja.utils import convert_colour
class TextWidget(Widget):
+
def __init__(self, pos, text, size=None, fontname=None, fontsize=None,
colour=None):
super(TextWidget, self).__init__(pos, size)
self.text = text
self.fontname = fontname or FONT
- self.fontsize = (fontsize or FONT_SIZE) // 4
+ self.fontsize = (fontsize or FONT_SIZE) // EIGHT_BIT_SCALE
self.colour = convert_colour(colour or (0, 0, 0))
+ def render_line(self, text):
+ text_surf = self.font.render(text, True, self.colour)
+ text_rect = text_surf.get_rect()
+ return pygame.transform.scale(
+ text_surf, (text_rect.width * EIGHT_BIT_SCALE,
+ text_rect.height * EIGHT_BIT_SCALE))
+
def prepare(self):
self.font = resources.get_font(self.fontname, self.fontsize)
- text = self.font.render(self.text, True, self.colour)
- text_rect = text.get_rect()
- self.surface = pygame.transform.scale(text, (text_rect.width * 4,
- text_rect.height * 4))
+ self.surface = self.render_line(self.text)
self.size = self.surface.get_rect().size
def draw(self, surface):
rendered_lines = []
width, height = self.padding, self.padding
for line in self.lines():
- line_surface = self.font.render(line, True, self.colour)
- line_rect = line_surface.get_rect()
- line_surface = pygame.transform.scale(
- line_surface, (line_rect.width * 2, line_rect.height * 2))
+ line_surface = self.render_line(line)
line_rect = line_surface.get_rect()
rendered_lines.append(line_surface)
width = max(width, line_rect.width)