5 #include <Multimedia/SDX.h>
6 #include <Multimedia/Loading.h>
29 Sound(
const char *ファイル名,
double 音量 = 1.0)
35 bool Load(
const char *ファイル名,
double 音量 = 1.0)
37 if (Loading::isLoading)
43 if (handle !=
nullptr){
return false; }
45 handle = Mix_LoadWAV(ファイル名);
46 if (!handle){
return false; }
48 volume = std::min(音量,1.0);
50 Mix_VolumeChunk(handle,
int(volume * 128));
57 if (handle ==
nullptr){
return false; }
58 Mix_FreeChunk(handle);
73 Mix_PlayChannel(0, handle, 0);
77 Mix_SetPosition(0, angle, distance);
79 else if (leftPan < 255 || rightPan < 255)
81 Mix_SetPanning(0, leftPan, rightPan);
90 volume = std::max(音量, 0.0);
91 volume = std::min(音量, 1.0);
92 Mix_VolumeChunk(handle,
int(音量 * MIX_MAX_VOLUME));
106 leftPan = std::min(
int(左パン*255),255);
107 rightPan = std::min(
int(右パン*255),255);
117 distance = std::min((
int)距離*255,255);
118 angle = int(角度 * 180 /
PAI);
121 angle = 360 -(std::abs(angle) % 360);
130 Mix_Volume(-1,
int(音量 * MIX_MAX_VOLUME));
const double PAI
円周率
Definition: SDX.h:26
効果音用音声を表すクラス.
Definition: Sound.h:13
static void SetMainVolume(double 音量)
全体の音量を0~1.0の範囲で設定.
Definition: Sound.h:127
Mix_Chunk * GetHandle() const
ハンドルを取得.
Definition: Sound.h:63
void Set3DEffect(double 距離=-1, double 角度=0)
3D音声再生効果を付ける.
Definition: Sound.h:115
double GetVolume()
音量を取得.
Definition: Sound.h:97
static void AddLoading(std::function< void(void)> &&読み込み関数)
非同期読み込み処理に追加.
Definition: Loading.h:96
Sound(const char *ファイル名, double 音量=1.0)
音声ファイルをメモリに読み込む.
Definition: Sound.h:29
bool Load(const char *ファイル名, double 音量=1.0)
音声ファイルをメモリに読み込む.
Definition: Sound.h:35
bool SetVolume(double 音量)
音量を0~1.0の範囲で設定.
Definition: Sound.h:88
bool Play() const
音声ファイルを再生.
Definition: Sound.h:69
bool Release()
音声ファイルをメモリから開放.
Definition: Sound.h:55
void SetPanning(double 左パン=1.0, double 右パン=1.0)
音声パンを設定.
Definition: Sound.h:104