円形のフェードインは MakeScreen 関数で作成できる『描画対象にできる画像』と
SetDrawBlendMode で非公開の描画ブレンドモードの『DX_BLENDMODE_SRCCOLOR』を使うことで実現することができます
キーボードの上下で円形のフェードインの円の大きさを操作できるサンプルを
作成してみましたので、よろしければご覧ください
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
int CircleSize ;
int ScreenHandle ;
int i ;
int Scroll ;
// ウインドウモードに変更
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() == -1 )
{
return -1 ;
}
// 円形フェードイン用の描画対象にできる画像を作成
ScreenHandle = MakeScreen( 640, 480, TRUE ) ;
// 円形フェードインの円のサイズをセット
CircleSize = 256 ;
// 背景で流れる線のスクロール用変数初期化
Scroll = 0 ;
// メインループ
while( ProcessMessage() == 0 )
{
// 背景で流れる線のスクロールの値を更新
Scroll = ( Scroll + 1 ) % 64 ;
// 上下キーで円のサイズを操作
if( CheckHitKey( KEY_INPUT_UP ) )
{
CircleSize += 8 ;
}
if( CheckHitKey( KEY_INPUT_DOWN ) )
{
CircleSize -= 8 ;
if( CircleSize < 0 )
{
CircleSize = 0 ;
}
}
// 描画先を円形フェードイン用の描画対象にできる画像に変更
SetDrawScreen( ScreenHandle ) ;
// 円形フェードイン用の画像を真っ黒で塗りつぶす
DrawBox( 0, 0, 640, 480, GetColor( 0,0,0 ), TRUE ) ;
// 円のサイズが1以上の場合は透明な円を描画
if( CircleSize >= 1 )
{
// 描画ブレンドモードを『描画色をそのまま書き込むモード』に変更
SetDrawBlendMode( DX_BLENDMODE_SRCCOLOR, 0 ) ;
// 完全に透明な円を描画
DrawCircle( 320, 240, CircleSize, GetColor( 0,0,0 ), TRUE ) ;
// 描画ブレンドモードを『ブレンドなし(デフォルト)』に変更
SetDrawBlendMode( DX_BLENDMODE_NOBLEND, 255 ) ;
}
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// 背景の縦線を描画
for( i = 0 ; i < 22 ; i ++ )
{
int DrawX = i * 32 + Scroll - 64 ;
DrawBox( DrawX, 0, DrawX + 32, 480, i % 2 == 0 ? GetColor( 128,128,128 ) : GetColor( 255,255,0 ), TRUE ) ;
}
// 円形フェードイン用の画像を描画
DrawGraph( 0, 0, ScreenHandle, TRUE ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
// DXライブラリ使用の終了処理
DxLib_End() ;
return 0 ;
}