JA

チュートリアル4 — サウンドと音楽

$this->sound()(SoundManager)が、効果音と音楽を再生します。デスクトップでもブラウザでも同じです。サウンドカードがない環境では、エラーにならず、すべて無音になります。

PHPで作るサウンド

Synthを使うと、ファイルなしでレトロなサウンドが作れます。

use JumPHP\Audio\Synth;

if (!$this->sound()->hasSfx('jump')) {                        // 一度だけ
    $this->sound()->synth('jump', Synth::sweep(250, 600, 0.12));               // 上がっていく周波数
    $this->sound()->synth('coin', Synth::sequence([[988, 0.05], [1319, 0.12]])); // 2つの音
    $this->sound()->synth('hit', Synth::noise(0.15));                          // ノイズ
    $this->sound()->synth('bass', Synth::tone(110, 0.3, 'triangle'));          // square, triangle, sine, saw
}
$this->sound()->playSfx('jump');

ファイル

$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();

音量

setSfxVolume(0.8)、setMusicVolume(0.5)、setMuted(true):これらの設定は、プレイヤーのオプションとして保存されます。オプションメニューでは、['VOLUME', fn () => ..., null, fn (int $dir) => ...]という行にします(メニューを参照)。

3Dサウンド(空間内に配置するサウンド)もあります:$this->engine->audio3d()。