feat: create sheet splice part of text generator
This commit is contained in:
BIN
resource/font/retro-font.bmp
Normal file
BIN
resource/font/retro-font.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 192 KiB |
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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]
|
||||||
Reference in New Issue
Block a user