1.44mb-gamejam

submission for the 1.44mb game jam - https://2pgarcade.com/contest-144mb.html
git clone git://brookjeynes.dev/bjeynes/1.44mb-gamejam.git
Log | Files | Refs

commit a0e37348df914caae559bcdcf0ae385faa74e955
parent b738829e0b30d5e6afb1a0cd17a439107bbe6c74
Author: brookjeynes <me@brookjeynes.dev>
Date:   Wed, 29 Jul 2026 11:15:13 +1000

feat: add player out-of-bounds

Signed-off-by: brookjeynes <me@brookjeynes.dev>

Diffstat:
Mbuild.zig | 1+
Msrc/main.zig | 34+++++++++++++++++++++++-----------
2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/build.zig b/build.zig @@ -17,6 +17,7 @@ pub fn build(b: *std.Build) void { .optimize = optimize, .imports = &.{ .{ .name = "raylib", .module = raylib.module("raylib") }, + .{ .name = "raymath", .module = raylib.module("raymath") }, }, }), }); diff --git a/src/main.zig b/src/main.zig @@ -1,14 +1,17 @@ const std = @import("std"); const raylib = @import("raylib"); +const raymath = @import("raymath"); pub fn main() !void { - const screen_width: u16 = 800; - const screen_height: u16 = 1000; + const screen_width: f16 = 800.0; + const screen_height: f16 = 1000.0; const fps: u8 = 60; - const player_movement_speed: f16 = 4.0; + const player_movement_speed: f16 = 170.0; const player_size: raylib.Vector2 = .{ .x = 50, .y = 50 }; raylib.InitWindow(screen_width, screen_height, "1.44mb game jam"); + defer raylib.CloseWindow(); + raylib.SetTargetFPS(fps); var player_position: raylib.Vector2 = .{ @@ -17,12 +20,25 @@ pub fn main() !void { }; while (!raylib.WindowShouldClose()) { - if (raylib.IsKeyDown(raylib.KEY_RIGHT)) player_position.x += player_movement_speed; - if (raylib.IsKeyDown(raylib.KEY_LEFT)) player_position.x -= player_movement_speed; - if (raylib.IsKeyDown(raylib.KEY_UP)) player_position.y -= player_movement_speed; - if (raylib.IsKeyDown(raylib.KEY_DOWN)) player_position.y += player_movement_speed; + const delta: f32 = raylib.GetFrameTime(); + var direction: raylib.Vector2 = .{}; + + if (raylib.IsKeyDown(raylib.KEY_RIGHT)) direction.x += 1; + if (raylib.IsKeyDown(raylib.KEY_LEFT)) direction.x -= 1; + if (raylib.IsKeyDown(raylib.KEY_UP)) direction.y -= 1; + if (raylib.IsKeyDown(raylib.KEY_DOWN)) direction.y += 1; + + direction = @bitCast(raymath.Vector2Normalize(@bitCast(direction))); + player_position.x += direction.x * player_movement_speed * delta; + player_position.y += direction.y * player_movement_speed * delta; + + const max_x: f32 = screen_width - player_size.x; + const max_y: f32 = screen_height - player_size.y; + player_position.x = @max(0, @min(max_x, player_position.x)); + player_position.y = @max(0, @min(max_y, player_position.y)); raylib.BeginDrawing(); + defer raylib.EndDrawing(); raylib.ClearBackground(raylib.RAYWHITE); @@ -31,9 +47,5 @@ pub fn main() !void { player_size, raylib.MAROON, ); - - raylib.EndDrawing(); } - - raylib.CloseWindow(); }