From 44cf2ced1c235946c2dd738fabbc9d5151930eb7 Mon Sep 17 00:00:00 2001 From: = <=> Date: Mon, 12 Oct 2026 12:07:03 +0200 Subject: [PATCH] Simple text gui stuff --- asset/fonts/JetBrainsMonoNL-Regular.ttf | Bin 0 -> 208576 bytes src/pacman/ecs/coord.py | 21 +++++- src/pacman/ecs/graphics.py | 4 +- src/pacman/ecs/gui.py | 90 ++++++++++++++++++++++++ src/pacman/ecs/world.py | 17 ++++- src/pacman/game/__init__.py | 89 +++++++++++++++-------- 6 files changed, 189 insertions(+), 32 deletions(-) create mode 100644 asset/fonts/JetBrainsMonoNL-Regular.ttf create mode 100644 src/pacman/ecs/gui.py diff --git a/asset/fonts/JetBrainsMonoNL-Regular.ttf b/asset/fonts/JetBrainsMonoNL-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..70d2ec9e28d6e06e923629b78b8a12c12e841589 GIT binary patch literal 208576 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∓A1MYS%KfAb`vb6N_vUFQFH(OgbH?C+e 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 BD2M<6 literal 0 HcmV?d00001 diff --git a/src/pacman/ecs/coord.py b/src/pacman/ecs/coord.py index cc3547b..dc8e6a3 100644 --- a/src/pacman/ecs/coord.py +++ b/src/pacman/ecs/coord.py @@ -1,9 +1,12 @@ +from collections.abc import Iterator +from typing import override + from pygame import Vector3 from pacman.ecs.hierarchy import Hierarchy from pacman.ecs.schedule import SystemSet, UpdateSchedule from pacman.ecs.update import PostUpdate -from pacman.ecs.world import Component, Query, Systems, World +from pacman.ecs.world import Bundle, Component, Query, Systems, World class CoordAbs2D(Component): @@ -17,6 +20,22 @@ class Coord2D(Vector3, Component): pass +class CoordBundle(Bundle): + def __init__(self, x: float = 0, y: float = 0, depth: float = -1) -> None: + self.coord = Coord2D(x, y, depth) + self.coord_abs = CoordAbs2D() + + @override + def components_iter(self) -> Iterator[Component]: + return iter((self.coord, self.coord_abs)) + + @classmethod + @override + def components_type_iter(cls, ty: type) -> Iterator[type[Component]]: + del ty + return iter((Coord2D, CoordAbs2D)) + + def update_coord(entities: Query[tuple[CoordAbs2D, Coord2D]]) -> None: for abs_coord, coord in entities: abs_coord._vec = coord.xyz diff --git a/src/pacman/ecs/graphics.py b/src/pacman/ecs/graphics.py index de2416b..887a486 100644 --- a/src/pacman/ecs/graphics.py +++ b/src/pacman/ecs/graphics.py @@ -139,6 +139,8 @@ InputsSystems = SystemSet("inputs-systems") def graphics_plugins(world: World) -> None: + from pacman.ecs.gui import gui_plugins + world.with_systems(StartupSchedule, init_window).with_systems( UpdateSchedule, Systems( @@ -151,4 +153,4 @@ def graphics_plugins(world: World) -> None: Systems(poll_events, close_on_close) .chain() .in_set(PreUpdate, InputsSystems), - ) + ).with_plugins(gui_plugins) diff --git a/src/pacman/ecs/gui.py b/src/pacman/ecs/gui.py new file mode 100644 index 0000000..ff6e93c --- /dev/null +++ b/src/pacman/ecs/gui.py @@ -0,0 +1,90 @@ +from dataclasses import dataclass, field +from typing import override + +import pygame +from pygame import Color + +from pacman.ecs.assets import Asset +from pacman.ecs.graphics import GraphicsSystems, Sprite2D +from pacman.ecs.schedule import StartupSchedule, UpdateSchedule +from pacman.ecs.update import PostUpdate +from pacman.ecs.world import ( + CommandQueue, + Component, + Entity, + Query, + System, + Systems, + World, +) + + +@dataclass +class Font(Asset, Component): + font: pygame.font.Font + + @override + @classmethod + def load(cls, ty: type, path: str) -> "Font": + del ty + path, size = path.split(":") + return Font(pygame.font.Font(path, int(size))) + + +@dataclass +class TextDisplay(Component): + text: str + font: Font + color: Color = field(default_factory=lambda: Color(255, 255, 255)) + _previously_rendered: tuple[str, Font, Color] | None = None + + +@dataclass +class ComputedText(Component): + cb: System[str] + + +def update_computed_text( + elems: Query[tuple[TextDisplay, ComputedText]], + world: World, +) -> None: + for display, compute in elems: + display.text = world.run_raw_system(compute.cb) + + +def update_text_sprites( + elems: Query[tuple[TextDisplay, Sprite2D | Entity]], queue: CommandQueue +) -> None: + inserts = [] + for display, e in elems: + if ( + display.text, + display.font, + display.color, + ) == display._previously_rendered: + continue + surface = display.font.font.render(display.text, True, display.color) + if isinstance(e, Sprite2D): + e.surface = surface + else: + inserts.append((e, Sprite2D(surface))) + display._previously_rendered = ( + display.text, + display.font, + display.color, + ) + queue.queue(lambda world: world.insert_many(Sprite2D, inserts)) + + +def setup_gui_resources() -> None: + pygame.font.init() + + +def gui_plugins(world: World) -> None: + world.with_systems(StartupSchedule, setup_gui_resources).with_systems( + UpdateSchedule, + Systems(update_computed_text, update_text_sprites) + .chain() + .in_set(PostUpdate) + .before(GraphicsSystems), + ) diff --git a/src/pacman/ecs/world.py b/src/pacman/ecs/world.py index 9d0135f..2dc6757 100644 --- a/src/pacman/ecs/world.py +++ b/src/pacman/ecs/world.py @@ -772,7 +772,7 @@ class World(FromWorld): def remove(query: Query[Entity, Ty], world: World) -> None: world.remove_many(ty, list(query)) - self.add_raw_system(remove)() + self.run_raw_system(remove) return self.spawn(ty, comp) def spawn_many[T: Components]( @@ -902,6 +902,21 @@ class World(FromWorld): return inner + def run_system[T, *P]( + self, + system: System[Callable[[*P], T]], + *args: *P, + default: Callable[[*P], T] = _system_failed_va, + ) -> T: + return self.add_system(system, default)(*args) + + def run_raw_system[T]( + self, + system: System[T], + default: Callable[[], T] = _system_failed, + ) -> T: + return self.add_raw_system(system, default)() + @classmethod @override def extract_from_world( diff --git a/src/pacman/game/__init__.py b/src/pacman/game/__init__.py index aaf4e32..59805a2 100644 --- a/src/pacman/game/__init__.py +++ b/src/pacman/game/__init__.py @@ -12,7 +12,12 @@ from pygame.math import clamp from pacman.ecs import minimal_plugins from pacman.ecs.assets import Assets -from pacman.ecs.coord import Coord2D, CoordAbs2D, PropagateTransform +from pacman.ecs.coord import ( + Coord2D, + CoordAbs2D, + CoordBundle, + PropagateTransform, +) from pacman.ecs.graphics import ( AnimationSet, GraphicsSystems, @@ -22,6 +27,7 @@ from pacman.ecs.graphics import ( WindowEvents, graphics_plugins, ) +from pacman.ecs.gui import ComputedText, Font, TextDisplay from pacman.ecs.hierarchy import ChildOf, Hierarchy from pacman.ecs.schedule import StartupSchedule, UpdateSchedule from pacman.ecs.update import PostUpdate, PreUpdate, Update @@ -209,24 +215,23 @@ def create_maze( def inner(maze: MazeGenerator) -> Entity: root_maze = Maze(len(maze.maze[0]), len(maze.maze)) root = world.spawn( - tuple[Maze, Coord2D, CoordAbs2D], - (root_maze, Coord2D(), CoordAbs2D()), + tuple[Maze, CoordBundle], + (root_maze, CoordBundle()), ) - cell_dims = Coord2D(64, 64, 0) + cell_dims = Vector2(64, 64) cells = { (x, y): ( ChildOf(root), - Coord2D(Coord2D(x, y, 0).elementwise() * cell_dims), + CoordBundle(*(Vector2(x, y).elementwise() * cell_dims).xy), Cell(cell, (x, y)), ShouldRender(), - CoordAbs2D(), assets.load(f"./asset/walls/{cell}.png"), ) for y, line in enumerate(maze.maze) for x, cell in enumerate(line) } spawned_cells = world.spawn_many( - tuple[ChildOf, Coord2D, Cell, ShouldRender, CoordAbs2D, Sprite2D], + tuple[ChildOf, CoordBundle, Cell, ShouldRender, Sprite2D], list(cells.values()), ) root_maze._cells = dict(zip(cells.keys(), spawned_cells, strict=True)) @@ -250,17 +255,14 @@ def spawn_superpacgums( pacgums.append( ( ChildOf(cell), - Coord2D(0, 0, -1), - CoordAbs2D(), + CoordBundle(), assets.load("./asset/misc/superpacgum.png"), ShouldRender(), SuperPacGum(), ) ) world.spawn_many( - tuple[ - ChildOf, Coord2D, CoordAbs2D, Sprite2D, ShouldRender, SuperPacGum - ], + tuple[ChildOf, CoordBundle, Sprite2D, ShouldRender, SuperPacGum], pacgums, ) @@ -283,21 +285,20 @@ def spawn_pacgums( pacgums.append( ( ChildOf(ent), - Coord2D(0, 0, -1), - CoordAbs2D(), + CoordBundle(), assets.load("./asset/misc/pacgum.png"), ShouldRender(), PacGum(), ) ) world.spawn_many( - tuple[ChildOf, Coord2D, CoordAbs2D, Sprite2D, ShouldRender, PacGum], + tuple[ChildOf, CoordBundle, Sprite2D, ShouldRender, PacGum], pacgums, ) def setup_maze(world: World) -> None: - world.add_system(create_maze)(MazeGenerator((14, 14))) + world.run_system(create_maze, MazeGenerator((14, 14))) def move_in_motion( @@ -384,8 +385,7 @@ def spawn_pacman( pos = home_cell.grid_pos world.spawn( tuple[ - Coord2D, - CoordAbs2D, + CoordBundle, AnimationSet, Pacman, ShouldRender, @@ -395,8 +395,7 @@ def spawn_pacman( ChildOf, ], ( - Coord2D(pos[0] * 64, pos[1] * 64, -10), - CoordAbs2D(), + CoordBundle(pos[0] * 64, pos[1] * 64, -10), AnimationSet( [ [ @@ -430,8 +429,7 @@ def spawn_ghosts( maze, maze_ent = maze_t world.spawn_many( tuple[ - Coord2D, - CoordAbs2D, + CoordBundle, AnimationSet, ShouldRender, InMotion, @@ -444,8 +442,7 @@ def spawn_ghosts( ], [ ( - Coord2D(pos[0] * 64, pos[1] * 64, -10), - CoordAbs2D(), + CoordBundle(pos[0] * 64, pos[1] * 64, -10), AnimationSet( [ [ @@ -591,9 +588,9 @@ def collide_ghost( continue match status.state: case GhostState.wander | GhostState.chase: - world.add_raw_system(respawn_pacman)() - world.add_raw_system(respawn_ghost)() - world.add_raw_system(start_pause_timer)() + world.run_raw_system(respawn_pacman) + world.run_raw_system(respawn_ghost) + world.run_raw_system(start_pause_timer) state.lives -= 1 break @@ -721,7 +718,7 @@ def setup_new_maze(world: World) -> None: spawn_ghosts, start_pause_timer, ): - world.add_raw_system(sys)() + world.run_raw_system(sys) def update_inputs(inputs: Inputs, events: WindowEvents) -> None: @@ -793,10 +790,44 @@ def setup_resources(world: World) -> None: world.spawn_resource(Config()) +def print_score(state: GameState) -> str: + return f"Score: {state.score}" + + +def print_lives(state: GameState) -> str: + return f"Lives: {state.lives}" + + +def setup_text(world: World, fonts: Assets[Font]) -> None: + world.spawn_many( + tuple[CoordBundle, ShouldRender, ComputedText, TextDisplay], + [ + ( + CoordBundle(depth=-20), + ShouldRender(), + ComputedText(print_score), + TextDisplay( + "", + fonts.load("./asset/fonts/JetBrainsMonoNL-Regular.ttf:30"), + ), + ), + ( + CoordBundle(y=100, depth=-20), + ShouldRender(), + ComputedText(print_lives), + TextDisplay( + "", + fonts.load("./asset/fonts/JetBrainsMonoNL-Regular.ttf:30"), + ), + ), + ], + ) + + def run_game() -> None: World().with_plugins(graphics_plugins, minimal_plugins).with_systems( StartupSchedule, - Systems(setup_resources, setup_new_maze).chain(), + Systems(setup_resources, setup_new_maze, setup_text).chain(), ).with_systems( UpdateSchedule, Systems( -- 2.53.0