トップページ > 記事閲覧
円のフェードイン
名前:タク 日時: 2015/12/23 18:14

マリオなどのゴールで使われている円形のフェードインを実装したいのですが、どのようにプログラムをくんでいいかわかりません。 どのようにすればよいのでしょうか。
メンテ

Page: 1 |

Re: 円のフェードイン ( No.1 )
名前:管理人 日時:2015/12/27 21:28

円形のフェードインは 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 ; }
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存