0465-Bomb-增加背景音乐

环境

  • Time 2024-03-23
  • Zig 0.12.0-dev.3152+90c1a2c41
  • WSL-Ubuntu 22.04.3 LTS
  • raylib 5.0

前言

说明

参考资料:

  1. 《游戏开发:世嘉新人培训教材》
  2. 图片素材:https://www.ituring.com.cn/book/1742

目标

增加背景音乐。

Sound

pub const Sound = struct {
    sound: ray.Sound,

    pub fn init(path: [:0]const u8) Sound {
        return .{ .sound = ray.LoadSound(path) };
    }

    pub fn play(self: Sound) void {
        ray.PlaySound(self.sound);
    }

    pub fn deinit(self: Sound) void {
        ray.UnloadSound(self.sound);
    }
};

stage.zig

const std = @import("std");
const engine = @import("engine.zig");
const map = @import("map.zig");
const state = @import("state.zig");

pub fn main() void {
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    defer _ = gpa.deinit();

    engine.init(gpa.allocator(), 640, 480, "炸弹人");
    defer engine.deinit();

    const sound = engine.Sound.init("data/sound/charara.wav");
    defer sound.deinit();
    sound.play();

    map.init();
    defer map.deinit();

    var mainState = state.State.init();
    defer mainState.deinit();

    while (engine.shouldContinue()) {
        mainState.update();
        mainState.draw();
    }
}

效果

总结

增加了背景音乐。到这里这本书就告一段落了,后面的 3D 模块,等需要的时候再看。

附录

源码

https://github.com/jiangbo/game/tree/main/zig/bomb

posted @ 2026-08-18 14:38  jiangbo4444  阅读(7)  评论(0)    收藏  举报