Merge remote-tracking branch 'origin/main' into main
commit
3e622e272b
Binary file not shown.
|
@ -12,7 +12,7 @@ from sprite.Sprite import Sprite
|
||||||
from sprite.StaticSprite import StaticSprite
|
from sprite.StaticSprite import StaticSprite
|
||||||
from ui_elements.TextLabel import TextLabel
|
from ui_elements.TextLabel import TextLabel
|
||||||
|
|
||||||
what_to_run = 'physics'
|
what_to_run = 'textlabel'
|
||||||
|
|
||||||
|
|
||||||
def apply_frame_rate(number: float):
|
def apply_frame_rate(number: float):
|
||||||
|
@ -84,11 +84,13 @@ elif what_to_run == 'textlabel':
|
||||||
screen_transform = PositionScale((0, 0), (4, 4))
|
screen_transform = PositionScale((0, 0), (4, 4))
|
||||||
|
|
||||||
pygame.init()
|
pygame.init()
|
||||||
screen = pygame.display.set_mode((300, 300))
|
screen = pygame.display.set_mode((800, 800))
|
||||||
pygame.display.set_caption("PM GAME")
|
pygame.display.set_caption("PM GAME")
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock()
|
||||||
|
|
||||||
test = TextLabel("Das ist ein Text", 100, 100, 50, Font('data/font/MilkyNice.otf', 50))
|
test1 = TextLabel("Das ist ein Test", 400, 0, 50, alignment="left")
|
||||||
|
test2 = TextLabel("Das ist ein Test", 400, 10, 50, alignment="center")
|
||||||
|
test3 = TextLabel("Das ist ein Test", 400, 20, 50, alignment="right")
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
clock.tick(5)
|
clock.tick(5)
|
||||||
|
@ -97,9 +99,12 @@ elif what_to_run == 'textlabel':
|
||||||
if event.type == pygame.QUIT:
|
if event.type == pygame.QUIT:
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
|
|
||||||
screen.fill((0, 0, 0))
|
screen.fill((0, 0, 110))
|
||||||
|
|
||||||
|
test1.draw(screen, screen_transform)
|
||||||
|
test2.draw(screen, screen_transform)
|
||||||
|
test3.draw(screen, screen_transform)
|
||||||
|
|
||||||
test.draw(screen, screen_transform)
|
|
||||||
pygame.display.update()
|
pygame.display.update()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import pygame
|
import pygame
|
||||||
from pygame import Surface
|
from pygame import Surface, Rect
|
||||||
from pygame.font import Font
|
from pygame.font import Font
|
||||||
|
|
||||||
from sprite.PositionScale import PositionScale
|
from sprite.PositionScale import PositionScale
|
||||||
|
|
||||||
|
|
||||||
class TextLabel:
|
class TextLabel:
|
||||||
def __init__(self, text: str, x_position: float, y_position: float, font_size: float, font: Font,
|
def __init__(self, text: str, x_position: float, y_position: float, font_size: int,
|
||||||
alignment: str = "left"):
|
alignment: str = "left"):
|
||||||
self.text = text
|
self.text = text
|
||||||
self.x_position = x_position
|
self.x_position = x_position
|
||||||
|
@ -15,20 +15,33 @@ class TextLabel:
|
||||||
self.current_width = 0
|
self.current_width = 0
|
||||||
self.current_height = 0
|
self.current_height = 0
|
||||||
self.font_size = font_size
|
self.font_size = font_size
|
||||||
self.font = font
|
self.font = Font('data/font/MilkyNice.ttf', self.font_size)
|
||||||
self.position_scale = PositionScale()
|
self.position_scale = PositionScale()
|
||||||
|
|
||||||
def draw(self, screen: Surface, screen_transform: PositionScale):
|
def draw(self, screen: Surface, screen_transform: PositionScale):
|
||||||
rendered_font = self.font.render(str(self.text), True, (255, 255, 255))
|
rendered_font = self.font.render(str(self.text), True, pygame.Color('white'))
|
||||||
|
|
||||||
self.current_width = rendered_font.get_width()
|
self.current_width = rendered_font.get_width()
|
||||||
self.current_height = rendered_font.get_height()
|
self.current_height = rendered_font.get_height()
|
||||||
|
|
||||||
if self.alignment == "right":
|
if self.alignment == "right":
|
||||||
screen.blit(rendered_font, (self.x_position - self.current_width / 2, self.y_position))
|
screen.blit(rendered_font, (self.x_position - self.current_width, self.y_position))
|
||||||
elif self.alignment == "right":
|
elif self.alignment == "left":
|
||||||
screen.blit(rendered_font, (self.x_position, self.y_position))
|
screen.blit(rendered_font, (self.x_position, self.y_position))
|
||||||
elif self.alignment == "center":
|
elif self.alignment == "center":
|
||||||
screen.blit(rendered_font, (self.x_position - self.current_width, self.y_position))
|
screen.blit(rendered_font, (self.x_position - self.current_width / 2, self.y_position))
|
||||||
|
|
||||||
def set_text(self, new_text: str):
|
target_scale = (screen_transform.scale[0] * self.position_scale.scale[0],
|
||||||
|
screen_transform.scale[1] * self.position_scale.scale[1])
|
||||||
|
|
||||||
|
target_position = ((self.position_scale.position[0] + screen_transform.position[0]) * target_scale[0],
|
||||||
|
(self.position_scale.position[1] + screen_transform.position[1]) * target_scale[1])
|
||||||
|
|
||||||
|
target_size = (int(target_scale[0] * self.x_position),
|
||||||
|
int(target_scale[1] * self.y_position))
|
||||||
|
|
||||||
|
target_image = pygame.transform.scale(rendered_font, target_size)
|
||||||
|
|
||||||
|
|
||||||
|
def set_text(self, new_text: str):
|
||||||
self.text = new_text
|
self.text = new_text
|
||||||
|
|
Loading…
Reference in New Issue