ここを使うのは初めてですがお願いします。
グローバル関数で int SHandle = LoadSoundMem("~"); と書き、
関数内で PlaySoundMem(SHandle,DX_PLAYTYPE_BACK); と書いても音が鳴りません。
int SHandle = LoadSoundMem("~");//グローバル関数
void MUSIC(void)
{
PlaySoundMem(SHandle,DX_PLAYTYPE_BACK);
}
出来ない仕様何ですかね?
PlaySoundMemについて
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: PlaySoundMemについて
グローバル変数の初期値としてロードしても、その後に行われるmainのDxLib_Init()で解放されてしまうからではないでしょうか。
あるいは、DxLib_Init()前なのでロード自体行われない可能性も。
どちらにしても、グローバル変数の初期値としてロードは止めた方が良いと思われます。
あるいは、DxLib_Init()前なのでロード自体行われない可能性も。
どちらにしても、グローバル変数の初期値としてロードは止めた方が良いと思われます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: PlaySoundMemについて
softya(ソフト屋)さん、すばやい対応ありがとうございます。
よくわかりました。
すみませんが、また質問です。
void MUSIC(int x)
{
switch(x)
{
case 1: PlaySoundMem(SHandle[0],DX_PLAYTYPE_BACK); break;
case 2: PlaySoundMem(SHandle[1],DX_PLAYTYPE_BACK); break;
case 3: PlaySoundMem(SHandle[2],DX_PLAYTYPE_BACK); break;
case 4: PlaySoundMem(SHandle[3],DX_PLAYTYPE_BACK); break;
case 5: PlaySoundMem(SHandle[4],DX_PLAYTYPE_BACK); break;
case 6: PlaySoundMem(SHandle[5],DX_PLAYTYPE_BACK); break;
default: break;
}
}
のような、音楽再生をする関数をつくりたいのですが、
いい案はないでしょうか?
よくわかりました。
すみませんが、また質問です。
void MUSIC(int x)
{
switch(x)
{
case 1: PlaySoundMem(SHandle[0],DX_PLAYTYPE_BACK); break;
case 2: PlaySoundMem(SHandle[1],DX_PLAYTYPE_BACK); break;
case 3: PlaySoundMem(SHandle[2],DX_PLAYTYPE_BACK); break;
case 4: PlaySoundMem(SHandle[3],DX_PLAYTYPE_BACK); break;
case 5: PlaySoundMem(SHandle[4],DX_PLAYTYPE_BACK); break;
case 6: PlaySoundMem(SHandle[5],DX_PLAYTYPE_BACK); break;
default: break;
}
}
のような、音楽再生をする関数をつくりたいのですが、
いい案はないでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: PlaySoundMemについて
シンプルにしたいなら下記の様なコードではどうでしょうか。
codeタグで読みやすくなりますのでお使い下さい。 xは座標にみえるのでnにしました。
codeタグで読みやすくなりますのでお使い下さい。 xは座標にみえるのでnにしました。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。