Samouczek 4 — Dźwięk i muzyka
$this->sound() (SoundManager) odtwarza efekty i muzykę, na pulpicie i w przeglądarce. Bez karty dźwiękowej wszystko jest ciche, nigdy nie ma błędu.
Dźwięki wytworzone w PHP
Synth tworzy retro dźwięki bez żadnego pliku:
use JumPHP\Audio\Synth;
if (!$this->sound()->hasSfx('jump')) { // tylko raz
$this->sound()->synth('jump', Synth::sweep(250, 600, 0.12)); // częstotliwość idąca w górę
$this->sound()->synth('coin', Synth::sequence([[988, 0.05], [1319, 0.12]])); // dwie nuty
$this->sound()->synth('hit', Synth::noise(0.15)); // szum
$this->sound()->synth('bass', Synth::tone(110, 0.3, 'triangle')); // square, triangle, sine, saw
}
$this->sound()->playSfx('jump');
Pliki
$this->sound()->loadSfx('explosion', 'assets/sfx/explosion.wav'); // wav, ogg, mp3
$this->sound()->loadMusic('level', 'assets/music/level.ogg');
$this->sound()->playMusic('level');
$this->sound()->stopMusic();
Głośność
setSfxVolume(0.8), setMusicVolume(0.5), setMuted(true): te ustawienia są zapisywane razem z opcjami gracza. Menu opcji robi z nich wiersze ['VOLUME', fn () => ..., null, fn (int $dir) => ...] (zobacz menu).
Istnieje też dźwięk 3D (umieszczony w przestrzeni): $this->engine->audio3d().