無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
pic

無題

#1

投稿記事 by pic » 16年前

こんばんは。質問させてもらいます。
製作時に音が邪魔だったので、ChangeVolumeSoundMemで0を設定していたのですが、いざ音を出してみようと思い、設定を戻したのですが、音が鳴りません。
龍神録プログラミングの館を参考に作っていますので、中身はあまり変わりません。
試しにmusic_play()関数の下に

void music_play(){
se_flag[0] = 1;
int i;

のように設定して、試してみたところ、se_flag[3]以外音がなりませんでした。
どこが悪いのか探しているのですが、見つからなくて困っています。
どなたかアドバイスをお願いします。

BEMANI

Re:無題

#2

投稿記事 by BEMANI » 16年前

>>picさん
どう見つけていいか解らないのでこちらも困ります。
情報が少なすぎるのでソースを載せるなどした方が良いと思います。
勝手に想像して書いてみます。

・フラグの立て忘れ
・音楽の読み込みミス(パスが違う・音楽自体を読み込んでいない等)
・音楽を鳴らす関数を呼んでいない
・サウンドがミュートになっている
・鳴らしている音楽の拡張子のせいでうまく鳴らない

pic

Re:無題

#3

投稿記事 by pic » 16年前

BEMANIさん。返答ありがとうございます。

フラグは立てています。
音楽の読み込みも大丈夫です。
関数は毎回whileループで呼ばれるので、OKだと思います。
音は聞こえるようにしており、BGMは流れます。
拡張子はwavとmp3を使用しているので、大丈夫だと思います。


先ほど、バグを探すために色々試してみたのですが、
sound_se[SE_MAX] : se_flag[SE_MAX] : SE_MAXは100
これをSE_MAXの値を0 ~ 10 くらいにして、フラグなどの状態を確かめてたのですが、
se_flag[3]とse_flag[9]のときは音がなりました。
後、なぜかSE_MAXを5にすると当たり判定がおかしくなります;;

変数sound_seをすべてse_soundに置換してみたらどの添字でも音は出るようになりました。
後、visual C++のブレークポイント?を使いフラグの値のチェックをしてみたところ、flagを立てていない場所に32などの値が入っていました。
値が入ってるにしても、se_flag[0] = 1 などの使い方をしているため、値は1しか入らないと思うのですが、これは関係ありますか?

SE_MAXをいじると当たり判定がおかしくなり、変数置換後も、ある条件下で当たり判定がおかしくなります。
なので、ソースを載せたいのですが、どこを載せたらいいのでしょうか。
一応配列は範囲内で使っております。

閉鎖

“C言語何でも質問掲示板” へ戻る