Sound Effects
Play one-shot and positional sound effects (and simple looping audio).
Quick start (play a sound)
click := get_asset(SFX_Asset, "sfx/click.wav");
desc := SFX.default_sfx_desc();
SFX.play(click, desc);SFX API reference
SFX_Asset :: class : Asset {}
SFX_Desc_Flags :: enum {
POSITIONAL :: 1 << 0;
}
SFX_Channel :: enum {
SFX;
MUSIC;
}
SFX_Desc :: struct {
flags: SFX_Desc_Flags;
position: v2 #read_only;
delay: float;
volume: float;
speed: float;
volume_perturb: float;
speed_perturb: float;
range_multiplier: float;
loop_timeout: float;
entity_to_follow: u64;
loop: bool;
channel: SFX_Channel;
set_position :: method(p: v2);
}
SFX :: struct {
play :: proc(asset: SFX_Asset, desc: SFX_Desc) -> u64;
stop :: proc(id: u64);
default_sfx_desc :: proc() -> SFX_Desc;
}Getting an SFX_Asset
SFX_AssetPositional (3D-ish) sounds
Following an entity (moving sound source)
Looping + stopping
Variation (recommended for spammy SFX)
Server vs client (networking + prediction)
Last updated