ページ 11

画像を複数枚表示してある状態でのフェード処理

Posted: 2013年4月19日(金) 21:39
by ヘイポー
ご教授願います。最近Dxlibraryを使い始めました。
DXライブラリ サンプルプログラムを参考にSetDrawBright関数を使用してフェードイン、アウト処理はできましたが
複数画像を表示した状態で、その中の1枚をフェードイン、アウト処理する場合はどうすれば良いですか?

Re: 画像を複数枚表示してある状態でのフェード処理

Posted: 2013年4月19日(金) 22:09
by softya(ソフト屋)
透過して背景に溶けこませるのではどうでしょうか?

「DXライブラリ置き場 リファレンスページ SetDrawBlendMode」
http://homepage2.nifty.com/natupaji/DxL ... html#R3N17

これで溶けこませる画像前に SetDrawBlendMode(DX_BLENDMODE_ALPHA,透明度);で透明モード設定、その後に溶けこませる画像を描画、その後戻します。SetDrawBlendMode(DX_BLENDMODE_NOBLEND,255);

Re: 画像を複数枚表示してある状態でのフェード処理

Posted: 2013年4月19日(金) 22:41
by ヘイポー
返信遅くなりましたm(_ _)m
正しく書けてるか不安ですが一応フェードイン、アウト処理ができました。ありがとうございます!

コード:

 
void blendFede(int imageHandle,int x,int y,bool transFlag=TRUE){
	static int alphaNum=255;
	static bool fadeFlug=true;
	if (fadeFlug==true)(alphaNum<=0)?fadeFlug=false:alphaNum-=5;
	if (fadeFlug==false)(alphaNum>=255)?fadeFlug=true:alphaNum+=5;
	SetDrawBlendMode(DX_BLENDMODE_ALPHA,alphaNum);
	DrawGraph(x,y,imageHandle,transFlag);
	SetDrawBlendMode(DX_BLENDMODE_ALPHA,255);
}
 

Re: 画像を複数枚表示してある状態でのフェード処理

Posted: 2013年4月19日(金) 22:50
by softya(ソフト屋)
最後は、SetDrawBlendMode(DX_BLENDMODE_NOBLEND,255);とすべきですね。