This commit is contained in:
2021-09-01 22:22:18 +02:00
parent b3c93e804a
commit 125e0e2831
5 changed files with 52 additions and 11 deletions

View File

@@ -4,8 +4,8 @@ from numpy import array as a
class Scene(Screen):
def __init__(self, width: float, height: float, font_size: int, scene_size: a, bg=(60, 60, 60)):
super().__init__(width, height, font_size, scene_size)
def __init__(self, width: float, height: float, scene_size: a, bg=(60, 60, 60)):
super().__init__(width, height, scene_size)
self.bg = bg
self.r_objects = [] # resizable Objects

View File

@@ -4,7 +4,7 @@ import pygame
class Screen:
def __init__(self, width: float, height: float, font_size: int, screen_size: a):
def __init__(self, width: float, height: float, screen_size: a):
pygame.init()
self.width = width
@@ -21,9 +21,14 @@ class Screen:
self.s_ = pygame.Surface([width, height])
self.s = pygame.display.set_mode(screen_size)
self.font_size = font_size
self.center = a([width, height]) / 2
def save(self, path):
pygame.image.save(self.s, path)
def save(self, path, size=None):
if size is None:
pygame.image.save(self.s, path)
else:
surface = pygame.Surface(size)
surface.blit(self.s, [0, 0])
pygame.image.save(surface, path)

View File

@@ -0,0 +1,32 @@
import pygame
class Text:
def __init__(self, position, text, font_size, color, scene, font_name="calibri", bold=True):
self.position = position
self.text = text
self.font_size = font_size
self.font_name = font_name
self.bold = bold
self.color = color
self.scene = scene
self.scalar = self.scene.matrix[0, 0]
self.font = pygame.font.SysFont(self.font_name, max(1, int(self.font_size * self.scalar)), self.bold)
self.rendered_text = self.font.render(self.text, False, self.color)
self.blit_position = self.scene.matrix @ self.position
self.blit_position[0] -= self.rendered_text.get_width() / 2
self.blit_position[1] -= self.rendered_text.get_height() / 2
def blit(self):
if self.scalar != self.scene.matrix[0, 0]:
self.scalar = self.scene.matrix[0, 0]
self.font = pygame.font.SysFont(self.font_name, max(1, int(self.font_size * self.scalar)), self.bold)
self.rendered_text = self.font.render(self.text, False, self.color)
self.blit_position = self.scene.matrix @ self.position
self.blit_position[0] -= self.rendered_text.get_width() / 2
self.blit_position[1] -= self.rendered_text.get_height() / 2
self.scene.s.blit(self.rendered_text, self.blit_position)