From b5122a8da867b69dab9798a533c3a0998a32034b Mon Sep 17 00:00:00 2001 From: bdnugget <1001337108312v3@gmail.com> Date: Fri, 8 May 2026 09:39:13 +0200 Subject: [PATCH] Sprite --- build.zig | 72 ++++++++++++++++++++++++++++++++++++ build.zig.zon | 52 ++++++++++++++++++++++++++ resources/PlayerSprite2.png | Bin 0 -> 24074 bytes resources/burp.mp3 | Bin 0 -> 21986 bytes resources/placeholder.txt | 0 src/main.zig | 56 ++++++++++++++++++++++++++++ 6 files changed, 180 insertions(+) create mode 100644 build.zig create mode 100644 build.zig.zon create mode 100644 resources/PlayerSprite2.png create mode 100644 resources/burp.mp3 create mode 100644 resources/placeholder.txt create mode 100644 src/main.zig diff --git a/build.zig b/build.zig new file mode 100644 index 0000000..1c9e3a0 --- /dev/null +++ b/build.zig @@ -0,0 +1,72 @@ +const std = @import("std"); +const rlz = @import("raylib_zig"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const raylib_dep = b.dependency("raylib_zig", .{ + .target = target, + .optimize = optimize, + + // Fixes panic from weird joystick OOB crap on hello world project + // panic: index -255 out of bounds for type 'int[512]' + // js->linjs.keyMap[code - BTN_MISC] in glfw/src/linux_joystick.c + .config = "-fno-sanitize=undefined", + }); + const raylib = raylib_dep.module("raylib"); + const raylib_artifact = raylib_dep.artifact("raylib"); + + const exe_mod = b.createModule(.{ + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, + }); + exe_mod.addImport("raylib", raylib); + + const run_step = b.step("run", "Run the app"); + + //web exports are completely separate + if (target.query.os_tag == .emscripten) { + const emsdk = rlz.emsdk; + const wasm = b.addLibrary(.{ + .name = "zig-frugg", + .root_module = exe_mod, + }); + + const install_dir: std.Build.InstallDir = .{ .custom = "web" }; + const emcc_flags = emsdk.emccDefaultFlags(b.allocator, .{ .optimize = optimize }); + const emcc_settings = emsdk.emccDefaultSettings(b.allocator, .{ .optimize = optimize }); + + const emcc_step = emsdk.emccStep(b, raylib_artifact, wasm, .{ + .optimize = optimize, + .flags = emcc_flags, + .settings = emcc_settings, + .shell_file_path = emsdk.shell(raylib_dep), + .install_dir = install_dir, + .embed_paths = &.{.{ .src_path = "resources/" }}, + }); + b.getInstallStep().dependOn(emcc_step); + + const html_filename = try std.fmt.allocPrint(b.allocator, "{s}.html", .{wasm.name}); + const emrun_step = emsdk.emrunStep( + b, + b.getInstallPath(install_dir, html_filename), + &.{}, + ); + + emrun_step.dependOn(emcc_step); + run_step.dependOn(emrun_step); + } else { + const exe = b.addExecutable(.{ + .name = "zig-frugg", + .root_module = exe_mod, + }); + b.installArtifact(exe); + + const run_cmd = b.addRunArtifact(exe); + run_cmd.step.dependOn(b.getInstallStep()); + + run_step.dependOn(&run_cmd.step); + } +} diff --git a/build.zig.zon b/build.zig.zon new file mode 100644 index 0000000..90efce6 --- /dev/null +++ b/build.zig.zon @@ -0,0 +1,52 @@ +.{ + // This is the default name used by packages depending on this one. For + // example, when a user runs `zig fetch --save `, this field is used + // as the key in the `dependencies` table. Although the user can choose a + // different name, most users will stick with this provided value. + // + // It is redundant to include "zig" in this name because it is already + // within the Zig package namespace. + .name = .zig_frugg, + // This is a [Semantic Version](https://semver.org/). + // In a future version of Zig it will be used for package deduplication. + .version = "0.0.0", + // Together with name, this represents a globally unique package + // identifier. This field is generated by the Zig toolchain when the + // package is first created, and then *never changes*. This allows + // unambiguous detection of one package being an updated version of + // another. + // + // When forking a Zig project, this id should be regenerated (delete the + // field and run `zig build`) if the upstream project is still maintained. + // Otherwise, the fork is *hostile*, attempting to take control over the + // original project's identity. Thus it is recommended to leave the comment + // on the following line intact, so that it shows up in code reviews that + // modify the field. + .fingerprint = 0x83fd67e65259ef3a, // Changing this has security and trust implications. + // Tracks the earliest Zig version that the package considers to be a + // supported use case. + .minimum_zig_version = "0.16.0", + // This field is optional. + // Each dependency must either provide a `url` and `hash`, or a `path`. + // `zig build --fetch` can be used to fetch all dependencies of a package, recursively. + // Once all dependencies are fetched, `zig build` no longer requires + // internet connectivity. + .dependencies = .{ + .raylib_zig = .{ + .url = "git+https://github.com/raylib-zig/raylib-zig?ref=devel#58f3c0fa328fc9ff48d17c2c3771ab9c5114aaa6", + .hash = "raylib_zig-6.0.0-KE8REMNkBQCpxwqT9ubVNf5aEOcWRUVIaH2sgt_sDDoZ", + }, + .emsdk = .{ + .url = "git+https://github.com/emscripten-core/emsdk?ref=4.0.9#3bcf1dcd01f040f370e10fe673a092d9ed79ebb5", + .hash = "N-V-__8AAJl1DwBezhYo_VE6f53mPVm00R-Fk28NPW7P14EQ", + }, + }, + .paths = .{ + "build.zig", + "build.zig.zon", + "src", + // For example... + //"LICENSE", + //"README.md", + }, +} diff --git a/resources/PlayerSprite2.png b/resources/PlayerSprite2.png new file mode 100644 index 0000000000000000000000000000000000000000..62cfb0c586589b858b1a53a768624b818a9a6f3d GIT binary patch literal 24074 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 I?8ngm15POWd;kCd literal 0 HcmV?d00001 diff --git a/resources/burp.mp3 b/resources/burp.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..6370422e592b6aa5634b556967a2086802e9525a GIT binary patch literal 21986 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 rtZ- literal 0 HcmV?d00001 diff --git a/resources/placeholder.txt b/resources/placeholder.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/main.zig b/src/main.zig new file mode 100644 index 0000000..0d14719 --- /dev/null +++ b/src/main.zig @@ -0,0 +1,56 @@ +const std = @import("std"); +const rl = @import("raylib"); + +const Vec3 = rl.Vector3; +const Vec2 = rl.Vector2; + +const Frug = struct { + pos: Vec3, + radius: f32 = 24, + pub fn draw(self: @This()) void { + rl.drawCircleV( + Vec2.init(self.pos.x, self.pos.y), + self.radius, + .green, + ); + } + pub fn init() Frug { + return Frug{ + .pos = .{ .x = 200, .y = 400, .z = 10 }, + .radius = 24, + }; + } +}; + +pub fn main(init: std.process.Init) anyerror!void { + const io = init.io; + try std.Io.File.stdout().writeStreamingAll(io, "FRUGG!\n"); + + const screenWidth = 800; + const screenHeight = 600; + + rl.initWindow(screenWidth, screenHeight, "Zig Frugger"); + defer rl.closeWindow(); + + rl.initAudioDevice(); + defer rl.closeAudioDevice(); + const frugBurp = try rl.loadSound("resources/burp.mp3"); + defer rl.unloadSound(frugBurp); + + rl.setTargetFPS(60); + + const frug = Frug.init(); + + while (!rl.windowShouldClose()) { + rl.beginDrawing(); + defer rl.endDrawing(); + + if (rl.isKeyPressed(.space)) rl.playSound(frugBurp); + + rl.clearBackground(.sky_blue); + + frug.draw(); + + rl.drawText("FRUGG!", 10, 10, 40, .green); + } +}