From c937e0834c9b1a156a099ba2ac10109bc71917cd Mon Sep 17 00:00:00 2001 From: chris bell Date: Wed, 18 Feb 2026 21:58:08 -0600 Subject: [PATCH] ui testing --- flake.nix | 3 ++- src/assets/pause.jpg | Bin 0 -> 13569 bytes src/gamestate.odin | 4 ++++ src/main.odin | 10 +++++++++- src/pausemenu.odin | 42 ++++++++++++++++++++++++++++++++++++++++++ src/player.odin | 3 --- src/world.odin | 3 --- 7 files changed, 57 insertions(+), 8 deletions(-) create mode 100644 src/assets/pause.jpg create mode 100644 src/gamestate.odin create mode 100644 src/pausemenu.odin diff --git a/flake.nix b/flake.nix index 57ae56f..ab6c9f2 100644 --- a/flake.nix +++ b/flake.nix @@ -24,8 +24,8 @@ buildInputs = with pkgs; [ libGL - # X11 dependencies for Raylib raylib + raygui xorg.libX11 xorg.libXcursor xorg.libXi @@ -38,6 +38,7 @@ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${with pkgs; lib.makeLibraryPath [ libGL raylib + raygui xorg.libX11 xorg.libXcursor xorg.libXi diff --git a/src/assets/pause.jpg b/src/assets/pause.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7688273adad573fef54f7aa8caeb0d2fe46a66b6 GIT binary patch literal 13569 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 literal 0 HcmV?d00001 diff --git a/src/gamestate.odin b/src/gamestate.odin new file mode 100644 index 0000000..a0f5439 --- /dev/null +++ b/src/gamestate.odin @@ -0,0 +1,4 @@ +package main + +GameState :: struct {} + diff --git a/src/main.odin b/src/main.odin index 5b4dabf..288963d 100644 --- a/src/main.odin +++ b/src/main.odin @@ -4,6 +4,8 @@ import "core:fmt" import "core:strings" import "vendor:raylib" +delta: f32 + player: Player main :: proc() { @@ -18,6 +20,8 @@ main :: proc() { raylib.SetExitKey(nil) + init_pause_menu() + init_world() defer deinit_world() @@ -34,7 +38,7 @@ main :: proc() { for (!raylib.WindowShouldClose()) { - delta := raylib.GetFrameTime() + if !is_paused do delta = raylib.GetFrameTime() raylib.BeginDrawing() raylib.ClearBackground(raylib.BLACK) @@ -47,6 +51,7 @@ main :: proc() { raylib.EndMode2D() raylib.DrawFPS(20, 20) + draw_pause_menu() draw_player_grid_debug() raylib.EndDrawing() @@ -56,6 +61,9 @@ main :: proc() { @(private = "file") update :: proc(delta: f32) { + process_pause_menu_input() + + if is_paused do return update_world(delta) update_player(&player, delta) } diff --git a/src/pausemenu.odin b/src/pausemenu.odin new file mode 100644 index 0000000..e4f6529 --- /dev/null +++ b/src/pausemenu.odin @@ -0,0 +1,42 @@ +package main + +import "core:fmt" +import rl "vendor:raylib" + +test_pause_tex: rl.Texture2D +test_pause_button_rect: rl.Rectangle + +is_paused := false + +init_pause_menu :: proc() { + test_pause_tex = rl.LoadTexture("./assets/pause.jpg") + test_pause_button_rect = { + x = 200, + y = 200, + width = f32(test_pause_tex.width), + height = f32(test_pause_tex.height), + } +} + +draw_pause_menu :: proc() { + if (is_paused) do rl.DrawTexture(test_pause_tex, 200, 200, rl.WHITE) +} + +process_pause_menu_input :: proc() { + mouse_pos := rl.GetMousePosition() + + if rl.IsKeyPressed(.ESCAPE) do is_paused = !is_paused + + if !is_paused do return + + if (rl.CheckCollisionPointRec(mouse_pos, test_pause_button_rect)) { + if (rl.IsMouseButtonPressed(rl.MouseButton.LEFT)) { + test_pause_click() + } + } +} + +test_pause_click :: proc() { + is_paused = false +} + diff --git a/src/player.odin b/src/player.odin index 855350e..07ddcc0 100644 --- a/src/player.odin +++ b/src/player.odin @@ -51,9 +51,6 @@ handle_player_camera :: proc(p: ^Player, delta: f32) { @(private = "file") handle_player_input :: proc(p: ^Player, delta: f32) { - - if raylib.IsKeyPressed(.ESCAPE) do return - dir: raylib.Vector2 = {0, 0} if raylib.IsKeyDown(.W) do dir.y -= 1 if raylib.IsKeyDown(.S) do dir.y += 1 diff --git a/src/world.odin b/src/world.odin index 703f54a..d52177f 100644 --- a/src/world.odin +++ b/src/world.odin @@ -13,9 +13,6 @@ interactables_layer_grid: Grid interactables_tilemap_sheet: TilemapSpritesheet init_world :: proc() { - - // world_base_color = {74, 132, 74, 255} - ground_tilemap_sheet = load_tilemap_sheet( "assets/tiles/master_tilemap.png", TILEMAP_TILE_SIZE,