ホワイトフェード
Posted: 2009年12月29日(火) 23:26
こんにちは
このサイトの「ゲームプログラミングの館」を見て普通のフェードインの方法はわかったのですが,
ホワイトフェードインの仕方が分かりません
どのようにすればよいでしょうか
このサイトの「ゲームプログラミングの館」を見て普通のフェードインの方法はわかったのですが,
ホワイトフェードインの仕方が分かりません
どのようにすればよいでしょうか
#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;
}
// フェードイン
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;
}
}