目次 - SDL_mixer - API(機能別) - エフェクト - Mix_SetDistance

Mix_SetDistance

チャネルの距離を設定する

構文

int Mix_SetDistance(int channel, Uint8 distance)

引数

channel減衰させるチャネル, またはMIX_CHANNEL_POST
distance距離. 0が聴者, 255が最大遠

戻り値

エラー(チャネルがない, またはMix_RegisterEffect()が失敗)のとき0, エフェクトが有効になったとき0以外を戻す. エラーメッセージはMix_GetError()で得られる.

詳細

「距離」は聴者からの音源の位置を表す0から255の整数で, 距離0が聴者, 255が可能な限り遠い位置である. 255は無音であることを保証しない. そのようにしたい場合は, チャンクの音量を変更するか, 単にMix_HaltChannel()を呼んで停止させること. 効率化のため, このエフェクトの精度には制限がある(距離1から7は同じ, 8から15は同じ, ...の様に). distanceは音源と聴者の間隔を表す0から255の整数である. 最大数が音源の最大遠である. 0を設定するとエフェクトが解除され, 以降のデータは通常通りになる. より正確な位置エフェクトが必要な場合は, 離散的なSDL_mixerのエフェクトではなくOpenALの使用を検討すべきである. これはシンプルな"3D"ゲームのための基礎的なエフェクトにすぎない.

チャネルにMIX_CHANNEL_POSTを設定するとポストエフェクトとなり, 距離はオーディオデバイスに渡される前の最後のミキシングの直前に適用される.

この関数は内部でMix_RegisterEffect()APIを使用している.

他のSDLやSDL_mixerの関数とは異なり, この関数は成功ではなくエラーのとき0を戻す.

バージョン

SDL_mixer 2.0.0以降

SDL Wikiへのリンク

SDL2_mixer/Mix_SetDistance