〜 グラフィック 〜
フェードアウト

ゲームや映像での場面切り替えをする時に使用する画面効果の1つ、フェードアウトを行うサンプルです。
フェードアウトとは、表示画像を徐々に消去していく画面効果のことを指し、
白一色に消去していくのをホワイトアウト、黒一色に消去していくのをブラックアウトと呼びます。
下記のサンプルでは、カレントポジションにバッファIDの画像を当初表示画像として、
カレントカラーを最終の塗りつぶし色として、徐々に表示画像を消去していくものです。
逆のフェードインについてはコチラのサンプルを参照してください。
	

fadeout 読込元バッファ, X座標, Y座標, 横幅, 高さ, 回数, 速度
読込元バッファコピーするウィンドウIDを指定する
X座標コピーする画像の基点X座標指定する
Y座標コピーする画像の基点Y座標指定する
横幅コピーするX方向のサイズを指定する
高さコピーするY方向のサイズを指定する
回数完全に消えるまでの繰り返し回数を指定する
速度徐々に消えていく1コマの時間(wait命令同様の10ミリ秒単位)を指定する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#module
#deffunc fadeout int, int, int, int, int, int, int
	mref id, 0 : mref px, 1 : mref py, 2 : mref sx, 3 : mref sy, 4 : mref times, 5 : mref sp, 6
	if times > 0 {
		repeat times
			redraw 0
			gmode 3, sx, sy, 256 - (256 * cnt) / times
			boxf csrx, csry, csrx + sx, csry + sy
			gcopy id, px, py
			redraw 1
			wait sp
		loop
	}
	boxf csrx, csry, csrx + sx, csry + sy
	return
#global

	buffer 2
	picload "sample/hspdx/hspdx.bmp"
	wx = winx : wy = winy
	gsel 0
	title "徐々に表示画像をブラックアウトします。"
	fadeout 2, , , wx, wy, 32, 1 // 1コマ1ミリ秒、32回で完全消去
	stop

fadeout 読込元バッファ, X座標, Y座標, 横幅, 高さ, 回数, 速度
読込元バッファコピーするウィンドウIDを指定する
X座標コピーする画像の基点X座標指定する
Y座標コピーする画像の基点Y座標指定する
横幅コピーするX方向のサイズを指定する
高さコピーするY方向のサイズを指定する
回数完全に消えるまでの繰り返し回数を指定する
速度徐々に消えていく1コマの時間(wait命令同様の10ミリ秒単位)を指定する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#module
#deffunc fadeout int id, int px, int py, int sx, int sy, int times, int sp
	if times > 0 {
		repeat times
			redraw 0
			gmode 3, sx, sy, 256 - 256 * cnt / times
			boxf ginfo_cx, ginfo_cy, ginfo_cx + sx, ginfo_cy + sy
			gcopy id, px, py
			redraw 1
			wait sp
		loop
	}
	boxf ginfo_cx, ginfo_cy, ginfo_cx + sx, ginfo_cy + sy
	return
#global

	buffer 1
	picload "sample/demo/logop.bmp"
	wx = ginfo_winx : wy = ginfo_winy
	gsel 0
	pos 10, 10 : mes "徐々に表示画像をホワイトアウトします。"
	color 255, 255, 255
	pos 50, 50 : fadeout 1, , , wx, wy, 10, 3 // 1コマ3ミリ秒、10回で完全消去