「フィードアウト」ではなくて「フェードアウト」と言うと思います。
やり方の一例としては、
下絵を描く → 黒い半透明の画像を上に重ねる
という操作を、黒い半透明の画像を重ねるときのブレンド率を次第に大きくしていきながら一定回数繰り返すことで
できます。
逆に、ブレンド率を256(=max)から徐々に下げて0にもっていくと、フェードインもできます。
画像ではなくて、文字等の、均一な色で合同な図形を描画する処理では、単に描画色のr,g,b値を変化させて
繰り返し描画することでもフェードアウト・フェードインを実現できます。
*start
gsel 0,-1
;バッファにロード。
buffer 1,1,1,0
chdir dir_tv
picload "bg04.jpg"
size_pic(0) = ginfo_winx,ginfo_winy;画像サイズ取得
screen 0,size_pic(0),size_pic(1),0;画像の大きさでメインウィンドウを再初期化する
*job1
time_fade = 3.0;フェードにかける時間
rate_decrease = 4;ブレンド率の減少速度(1フレームあたり)
repnum = 256/rate_decrease;繰り返し回数
rate_frame = time_fade/double(repnum);フレームレート(sec)
array_x_gsquare(0) = 0,size_pic(0)-1,size_pic(0)-1,0;gsquare命令用の配列
array_y_gsquare(0) = 0,0,size_pic(1)-1,size_pic(1)-1
repeat repnum;(=32)
redraw 0;ちらつき防止
;<下絵の描画>
gmode 0,size_pic(0),size_pic(1);下絵は完全コピー
pos 0,0 : gcopy 1,0,0
;<黒い膜を被せる>
gmode 3,1,1,rate_decrease*(cnt+1);「+1」の意味は考えて!
gsquare -1,array_x_gsquare,array_y_gsquare
redraw 1
await rate_frame*1000
loop
;<fin>
font msgothic,200,1+16
time_fade = 3.0;フェードにかける時間
rate_decrease = 5;r=g=b値の増加速度(1フレームあたり)
repnum = 255/rate_decrease;繰り返し回数
rate_frame = time_fade/double(repnum);フレームレート(sec)
repeat repnum
color rate_decrease*(cnt+1),rate_decrease*(cnt+1),rate_decrease*(cnt+1)
pos 250,150 : mes "fin"
await rate_frame*1000
loop