feat: create sheet splice part of text generator

This commit is contained in:
2021-06-11 23:48:55 -04:00
parent b3708a50f3
commit afaaf3a8bc
3 changed files with 32 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

View File

@@ -1,7 +1,9 @@
import sys import sys
from typing import Text
import pygame import pygame
from pygame import mixer from pygame import mixer
from tetris.util import ConfigurationManager from tetris.util import ConfigurationManager
from tetris.util import TextGenerator
from tetris.entity import PieceGenerator from tetris.entity import PieceGenerator
from tetris.entity import Well from tetris.entity import Well
from tetris.entity import Stack from tetris.entity import Stack
@@ -21,6 +23,7 @@ class Game:
def initialize(self) -> None: def initialize(self) -> None:
pygame.init() pygame.init()
TextGenerator.load("resource/font/retro-font.bmp", (20, 30))
win_width = ConfigurationManager.get("window", "width") win_width = ConfigurationManager.get("window", "width")
win_height = ConfigurationManager.get("window", "height") win_height = ConfigurationManager.get("window", "height")
@@ -119,9 +122,8 @@ class Game:
if self.current_piece: if self.current_piece:
self.current_piece.draw(self.screen) self.current_piece.draw(self.screen)
self.sheet = pygame.image.load("resource/font/gravity-font.bmp").convert() TextGenerator.draw("SCORE", (0, 0), self.screen)
self.screen.blit(self.sheet, (0, 0), pygame.Rect(30, 30, 30, 30))
# update display # update display
pygame.display.update() pygame.display.update()

View File

@@ -1,5 +1,5 @@
import random
import yaml import yaml
import pygame
from typing import Tuple from typing import Tuple
""" """
@@ -20,4 +20,29 @@ class ConfigurationManager:
if sub_key: if sub_key:
return cls.configuration[key][sub_key] return cls.configuration[key][sub_key]
else: else:
return cls.configuration[key] return cls.configuration[key]
class TextGenerator:
sheet = None
glyph_size = -1
letters = { }
numbers = { }
@classmethod
def load(cls, file: str, glyph_size: Tuple) -> None:
cls.sheet = pygame.image.load(file)
cls.glyph_size = glyph_size
cls.letters["S"] = (3 * glyph_size[0], 6 * glyph_size[1])
cls.letters["C"] = (3 * glyph_size[0], 4 * glyph_size[1])
cls.letters["O"] = (7 * glyph_size[0], 5 * glyph_size[1])
cls.letters["R"] = (2 * glyph_size[0], 6 * glyph_size[1])
cls.letters["E"] = (5 * glyph_size[0], 4 * glyph_size[1])
@classmethod
def draw(cls, text: str, position: Tuple, surface: pygame.Surface) -> None:
x_position = 0
for char_ in text:
surface.blit(cls.sheet, (position[0] + x_position, position[1]), pygame.Rect(cls.letters[char_.upper()], (cls.glyph_size[0], cls.glyph_size[1])))
x_position += cls.glyph_size[0]