フェード+効果音

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

フェード+効果音

#1

投稿記事 by 深黒 » 15年前

int fie=LoadGraph( "field.bmp" ) ;
int ble=LoadGraph( "bless.bmp" ) ;
for(i=255;i>=0;i-=3){
ClearDrawScreen();
SetDrawScreen( DX_SCREEN_BACK ) ;
DrawGraph(0,0,fie,FALSE);
SetDrawBlendMode(DX_BLENDMODE_NOBLEND,255);
DrawGraph(300,300, ble, FALSE );
SetDrawBlendMode(DX_BLENDMODE_ALPHA,i);
DrawBox(300,300,430,488,GetColor(255,255,255),TRUE);
SetDrawBlendMode(DX_BLENDMODE_NOBLEND,255);
ScreenFlip() ;
}
SetDrawScreen( DX_SCREEN_FRONT ) ;
field(1);
こんな感じにプログラムを入力して、白→フェードしながらに画像を表示というのを作りました。
これに効果音を出せるように仕組んで、フェードしつつ効果音を出すというのがやりたいのですが、平行できません。
どうすればいいかアドバイスが欲しいです。

Dixq (管理人)

Re:フェード+効果音

#2

投稿記事 by Dixq (管理人) » 15年前

ゲームプログラミングの館にDXライブラリの使い方が一通り載っているので目を通して頂ければと思います。
例えば今回の件ならこの辺が参考になると思います。

http://dixq.net/g/33.html

画面消去や反映は複数個所に書くべきではなく、どこか1か所に書き、毎回そこをループする必要があります。
プログラムを書く時は処理の担当を明確にし、関数化すると解りやすいでしょう。

また、裏画面に設定する関数はループで呼ぶ必要はありません。

深黒

Re:フェード+効果音

#3

投稿記事 by 深黒 » 15年前

返信ありがとうございます。
int fie=LoadGraph( "field.bmp" ) ;
int ble=LoadGraph( "bless.bmp" ) ;
ClearDrawScreen();
SetDrawScreen( DX_SCREEN_BACK ) ;
DrawGraph(0,0,fie,FALSE);
for(i=255;i>=0;i-=3){
SetDrawBlendMode(DX_BLENDMODE_NOBLEND,255);
DrawGraph(300,300, ble, FALSE );
SetDrawBlendMode(DX_BLENDMODE_ALPHA,i);
DrawBox(300,300,430,488,GetColor(255,255,255),TRUE);
SetDrawBlendMode(DX_BLENDMODE_NOBLEND,255);
ScreenFlip() ;
}
SetDrawScreen( DX_SCREEN_FRONT ) ;
field(1);
指摘された部分を考えるとこんなプログラムになりました。

効果音が平行できないというのは、例えばfor文の前に効果音の文を入れると、効果音が鳴り終わらないとフェードの作業をしないため、うまくいかないという事です。
鳴らしつつ、フェードするというのがしたいです

シエル

Re:フェード+効果音

#4

投稿記事 by シエル » 15年前

効果音を鳴らすときの関数でPlayTypeという引数があると思いますが、
その引数がDX_PLAYTYPE_NORMALになってませんか?
DX_PLAYTYPE_BACKにすると再生した後すぐに制御を返してくれます。

深黒

Re:フェード+効果音

#5

投稿記事 by 深黒 » 15年前

返信ありがとうございます。
変更したら成功しましたm(_ _)m 画像

閉鎖

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