ADD new font

This commit is contained in:
2025-04-27 01:06:26 +02:00
parent 9b76b6e65a
commit 1059271798
5 changed files with 16 additions and 6 deletions

Binary file not shown.

View File

@@ -21,8 +21,8 @@ def main():
"show_names": True "show_names": True
}, },
"styling": { "styling": {
"font": pygame.font.Font(None, 36), "font": pygame.font.Font("assets/fonts/Metropolis-Regular.ttf", 36),
"small_font": pygame.font.Font(None, 15), "small_font": pygame.font.Font("assets/fonts/Metropolis-Regular.ttf", 15),
"button_colour": (200, 200, 200), "button_colour": (200, 200, 200),
"pressed_button_colour": (150, 150, 150), "pressed_button_colour": (150, 150, 150),
"text_colour": (255, 255, 255), "text_colour": (255, 255, 255),

View File

@@ -19,6 +19,7 @@ class SettingsMenuRenderer:
# Buttons # Buttons
self.back_button = Button(10, 10, 50, 50, None) self.back_button = Button(10, 10, 50, 50, None)
self.back_button.set_colour(self.styling["button_colour"]) self.back_button.set_colour(self.styling["button_colour"])
self.back_button.set_font(self.styling["font"])
self.back_button.set_pressed_colour(self.styling["pressed_button_colour"]) self.back_button.set_pressed_colour(self.styling["pressed_button_colour"])
self.back_button.set_image("assets/arrow.png") self.back_button.set_image("assets/arrow.png")

View File

@@ -27,6 +27,7 @@ class StartMenu(GameState):
50, 50,
self._get_demo) self._get_demo)
self.upload_demo_button.set_text("Upload Demo") self.upload_demo_button.set_text("Upload Demo")
self.upload_demo_button.set_font(self.styling["font"])
self.upload_demo_button.set_font_size(40) self.upload_demo_button.set_font_size(40)
self.upload_demo_button.set_colour(self.styling["button_colour"]) self.upload_demo_button.set_colour(self.styling["button_colour"])
self.upload_demo_button.set_pressed_colour(self.styling["pressed_button_colour"]) self.upload_demo_button.set_pressed_colour(self.styling["pressed_button_colour"])
@@ -37,6 +38,7 @@ class StartMenu(GameState):
50, 50,
lambda: self.switch_state("settings_menu")) lambda: self.switch_state("settings_menu"))
self.settings_button.set_text("Settings") self.settings_button.set_text("Settings")
self.settings_button.set_font(self.styling["font"])
self.settings_button.set_font_size(40) self.settings_button.set_font_size(40)
self.settings_button.set_colour(self.styling["button_colour"]) self.settings_button.set_colour(self.styling["button_colour"])
self.settings_button.set_pressed_colour(self.styling["pressed_button_colour"]) self.settings_button.set_pressed_colour(self.styling["pressed_button_colour"])
@@ -47,6 +49,7 @@ class StartMenu(GameState):
50, 50,
pygame.quit) pygame.quit)
self.quit_button.set_text("Quit") self.quit_button.set_text("Quit")
self.quit_button.set_font(self.styling["font"])
self.quit_button.set_font_size(40) self.quit_button.set_font_size(40)
self.quit_button.set_colour(self.styling["button_colour"]) self.quit_button.set_colour(self.styling["button_colour"])
self.quit_button.set_pressed_colour(self.styling["pressed_button_colour"]) self.quit_button.set_pressed_colour(self.styling["pressed_button_colour"])

View File

@@ -15,6 +15,7 @@ class Button:
self.font_size = 20 self.font_size = 20
self.colour = (255, 255, 255) self.colour = (255, 255, 255)
self.pressed_colour = (200, 200, 200) self.pressed_colour = (200, 200, 200)
self.font = pygame.font.Font(None, self.font_size)
self.pressed = False self.pressed = False
self.border_radius = 3 self.border_radius = 3
@@ -22,6 +23,9 @@ class Button:
def get_font_size(self) -> int: def get_font_size(self) -> int:
return self.font_size return self.font_size
def get_font(self) -> pygame.font.Font:
return self.font
def get_text(self) -> str: def get_text(self) -> str:
return self.text return self.text
@@ -37,6 +41,9 @@ class Button:
def set_font_size(self, font_size: int) -> None: def set_font_size(self, font_size: int) -> None:
self.font_size = font_size self.font_size = font_size
def set_font(self, font: pygame.Font) -> None:
self.font = font
def set_text(self, text: str) -> None: def set_text(self, text: str) -> None:
self.text = text self.text = text
@@ -60,9 +67,8 @@ class Button:
self.image = pygame.image.load(image_path) self.image = pygame.image.load(image_path)
self.image = pygame.transform.scale(self.image, (self.width, self.height)) self.image = pygame.transform.scale(self.image, (self.width, self.height))
def _draw_text(self, screen, text: str, font_size: int) -> None: def _draw_text(self, screen, text: str) -> None:
font = pygame.font.Font(None, font_size) text_surface = self.font.render(text, True, (0, 0, 0))
text_surface = font.render(text, True, (0, 0, 0))
text_rect = text_surface.get_rect(center=(self.x + self.width // 2, self.y + self.height // 2)) text_rect = text_surface.get_rect(center=(self.x + self.width // 2, self.y + self.height // 2))
screen.blit(text_surface, text_rect) screen.blit(text_surface, text_rect)
@@ -93,7 +99,7 @@ class Button:
screen.blit(self.image, (self.x, self.y)) screen.blit(self.image, (self.x, self.y))
if self.text: if self.text:
self._draw_text(screen, self.text, self.font_size) self._draw_text(screen, self.text)
if __name__ == "__main__": if __name__ == "__main__":
pygame.init() pygame.init()