こんにちは
このサイトの「ゲームプログラミングの館」を見て普通のフェードインの方法はわかったのですが,
ホワイトフェードインの仕方が分かりません
どのようにすればよいでしょうか
ホワイトフェード
Re:ホワイトフェード
サンプルを書いてみました。
やっていることはSooAさんの仰るとおり、白をかぶせているだけです。
SetDrawBlendModeでアルファ値を設定しておき、その上に白の四角形を描画しています。
やっていることはSooAさんの仰るとおり、白をかぶせているだけです。
SetDrawBlendModeでアルファ値を設定しておき、その上に白の四角形を描画しています。
#include <DxLib.h> void DrawWhiteFade(int Bright){ SetDrawBlendMode(DX_BLENDMODE_ALPHA, Bright); DrawBox(0,0,640,480,0xFFFFFF,TRUE); SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0); } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ int Count=0; ChangeWindowMode(TRUE); if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1; while(!ScreenFlip() && !ProcessMessage() && !ClearDrawScreen() && !CheckHitKey(KEY_INPUT_ESCAPE)){ DrawString(0,0,"Hello World",0xFFFFFF); DrawString(200,(Count*4)%480,"Hello World",0xFFFFFF); DrawWhiteFade( Count%255 ); Count++; } DxLib_End(); return 0; }
Re:ホワイトフェード
以前、作ったものです。
よかったら使ってください。
フェードインとフェードアウトがあります。
戻り値がフェードが終わったか?
引数がカラー 白なら 0xFFFFFF スピードが速さです。
よかったら使ってください。
フェードインとフェードアウトがあります。
戻り値がフェードが終わったか?
引数がカラー 白なら 0xFFFFFF スピードが速さです。
// フェードイン bool FadeIn(int Color ,int Speed){ static int Air = 255; // 描画ブレンドモードをαブレンドにする SetDrawBlendMode(DX_BLENDMODE_ALPHA,Air); // グラフィックの描画 DrawBox(0,0,WIN_W,WIN_H,Color,true); // 描画ブレンドモードをノーブレンドにする SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) ; Air -= Speed; if(Air <= 0){ Air = 0; return true; }else{ return false; } } // フェードアウト bool FadeOut(int Color ,int Speed){ static int Air = 0; // 描画ブレンドモードをαブレンドにする SetDrawBlendMode(DX_BLENDMODE_ALPHA,Air); // グラフィックの描画 DrawBox(0,0,WIN_W,WIN_H,Color,true); // 描画ブレンドモードをノーブレンドにする SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) ; Air += Speed; if(Air >= 255){ Air = 255; return true; }else{ return false; } }