ページ 11

音量調節がうまくいかない

Posted: 2011年2月22日(火) 18:02
by サモ
はじめまして、龍神録プログラミングの館で勉強させていただいてます。

現在、18章で当たり判定とSEをつけたのですが、load.cppのChangeVolumeSoundMem()による音量調節がうまく動きません。
正確には、2回動かず1回動く、という動作をします。
音量を0に設定しても、鳴る、鳴る、鳴らないという状態です。

ためしに再生する直前に(music.cppのPlaySoundMem()の直前)で音量調節してみると、
始めの2回は動きませんでしたが、それ以降はちゃんと動きました。
結局、始めの2回は動いていないわけですが。

正直、原因が分からず困っています。
どなたか、原因を推測できる方お願いします。

Re: 音量調節がうまくいかない

Posted: 2011年2月22日(火) 19:23
by bitter_fox
的確なアドバイスをするためには情報が少ないです。
お書きになったソースを載せていただけますか?(load関数とmusic_play関数)
(その際にはcodeタグで囲っていただきますようにお願いします。)
サモ さんが書きました: 現在、18章で当たり判定とSEをつけたのですが、load.cppのChangeVolumeSoundMem()による音量調節がうまく動きません。
正確には、2回動かず1回動く、という動作をします。

ためしに再生する直前に(music.cppのPlaySoundMem()の直前)で音量調節してみると、
始めの2回は動きませんでしたが、それ以降はちゃんと動きました。
「二回動かず一回動く」とありますが、それはどの二つが動かなくてどの一つが動くのでしょうか?
詳しく教えていただけますか?

Re: 音量調節がうまくいかない

Posted: 2011年2月22日(火) 20:56
by サモ
すいません、言葉足らずでした。

load.cpp

コード:

void load(){
//画像読み込みなど(略)
//SE読み込み
	sound_se[0]=LoadSoundMem("../dat/se/enemy_shot.wav");
	sound_se[1]=LoadSoundMem("../dat/se/enemy_death.wav");
	sound_se[2]=LoadSoundMem("../dat/se/cshot.wav");
	sound_se[8]=LoadSoundMem("../dat/se/hit.wav");
	ChangeVolumeSoundMem( 0, sound_se[0] ) ;//テストのためボリューム0
	ChangeVolumeSoundMem(128, sound_se[1] ) ;
	ChangeVolumeSoundMem(128, sound_se[2] ) ;
	ChangeVolumeSoundMem( 80, sound_se[8] ) ;
}
music.cpp

コード:

void music_play(){
	int i;
	for(i=0;i<SE_MAX;i++){
		if(se_flag[i]==1){
			if(CheckSoundMem(sound_se[i])!=0){
				if(i==8)continue;
				StopSoundMem(sound_se[i]);
			}
			//ChangeVolumeSoundMem( 0, sound_se[0] ) ;//試しに追加
			PlaySoundMem(sound_se[i],DX_PLAYTYPE_BACK);
		}
	}
}
load.cppのテストのためボリューム0部分と、music.cppの試しに追加した部分以外は元のソースファイルのままです。
「二回動かず一回動く」というのは、今は敵の弾発射音でテストしているのですが、
1射目、2射目の音は鳴り、3射目は鳴らない、4,5が鳴って、6が鳴らない、という感じです。
music.cppの試しに追加を入れると、4射目以降もなりません。

またダウンロードした18章のソースでも試してみたのですが、(それまでは1章のソースに追加していったものを使っていました)
やはり同じ結果になりました。
こうなるとパソコン自体の不調だと思うのですが、確認のためにもお願いします。

Re: 音量調節がうまくいかない

Posted: 2011年2月22日(火) 23:31
by Dixq (管理人)
すみません、DXライブラリ自体のバグだったようです。
foxさんとSAIさんが本家掲示板で報告されているのを教えて下さいました。
今の最新バージョンでは修正されているので、配布しているプロジェクトに含まれるライブラリを最新に差し替えておきました。
よろしければ再度ダウンロードしてお使いください。

Re: 音量調節がうまくいかない

Posted: 2011年2月23日(水) 09:09
by サモ
最新版をダウンロードして試したところ、問題なく動作しました。
自分のPCの不調などではなく安心しました。
Dixq (管理人)さん、ならびにfoxさん、SAIさん、ありがとうございました。