現在c++とDXライブラリでゲームを作成しています。
その中で「フェードイン・フェードアウト」処理を行うために、以下のコードを作ってみました。
//--------------------------------------------------
// フェードイン
//--------------------------------------------------
bool Fade::FadeIn(int fade_speed, int r, int g, int b)
{
static int bright = 0;
// 描画輝度をセット
SetDrawBright(bright, bright, bright);
// 画面を覆う四角形を描画
DrawBox(0, 0, 640, 480, GetColor(r, g, b), true);
DrawFormatString(40, 40, GetColor(0, 0, 255), "%d", bright);
// 輝度が255を超えたら
if(bright > 255)
{
// 画面の輝度を戻しておく
SetDrawBright(255, 255, 255);
// 真を返す
return true;
}
else
{
// 輝度を加算
bright += fade_speed;
}
return false;
}
//--------------------------------------------------
// フェードアウト
//--------------------------------------------------
bool Fade::FadeOut(int fade_speed, int r, int g, int b)
{
static int bright = 255;
// 描画輝度をセット
SetDrawBright(bright, bright, bright);
// 画面を覆う四角形を描画
DrawBox(0, 0, 640, 480, GetColor(r, g, b), true);
DrawFormatString(40, 40, GetColor(0, 0, 255), "%d", bright);
// 輝度が0を下回った
if(bright <= 0)
{
// 画面の輝度を戻しておく
SetDrawBright(255, 255, 255);
// 真を返す
return true;
}
else
{
// 輝度を減算
bright -= fade_speed;
}
return false;
}
このコードの場合、[bright]はどこで初期化すれば正しい動きをするのでしょうか。
また、コード自体に誤りがあればご指摘くださると助かります。