}
}
- public override void é«\98é\80\9fé\80²è¡\8cã\81\99ã\82\8b()
+ public override void é\80²è¡\8cæ\8f\8fç\94»ã\81\99ã\82\8b( ã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\83\87ã\83\90ã\82¤ã\82¹ gd )
{
Debug.Assert( this.活性化している );
+ Debug.Assert( null != gd );
+
+ retry:
switch( this.現在のフェーズ )
{
break;
case フェーズ.フェードイン:
- this._フェードイン.進行する();
if( this._フェードイン.完了した )
{
this._フェーズカウンタ.開始する( 最初の値: 0, 最後の値: 2, 値をひとつ増加させるのにかける時間ms: 1000 );
this.現在のフェーズ = フェーズ.表示;
+ goto retry;
+ }
+ else
+ {
+ this._背景画像.描画する( gd, 0f, 0f );
+ this._フェードイン.進行描画する( gd, this._フェードインアウト用パネル );
}
break;
case フェーズ.表示:
if( this._フェーズカウンタ.終了値に達した )
{
- this.現在のフェーズ = フェーズ.フェードアウト;
this._フェードアウト.開始する();
+ this.現在のフェーズ = フェーズ.フェードアウト;
+ goto retry;
+ }
+ else
+ {
+ this._背景画像.描画する( gd, 0f, 0f );
}
break;
case フェーズ.フェードアウト:
- this._フェードアウト.進行する();
if( this._フェードアウト.完了した )
{
this.現在のフェーズ = フェーズ.完了;
+ //goto retry; --> ちらつきが起きるのでコメントアウト
}
+ this._背景画像.描画する( gd, 0f, 0f );
+ this._フェードアウト.進行描画する( gd, this._フェードインアウト用パネル );
+
break;
case フェーズ.完了:
}
}
- public override void 描画する( グラフィックデバイス gd )
- {
- Debug.Assert( this.活性化している );
- Debug.Assert( null != gd );
-
- switch( this.現在のフェーズ )
- {
- case フェーズ.開始:
- break;
-
- case フェーズ.フェードイン:
- this._背景画像.描画する( gd, 0f, 0f );
- this._フェードイン.描画する( gd, this._フェードインアウト用パネル );
- break;
-
- case フェーズ.表示:
- this._背景画像.描画する( gd, 0f, 0f );
- break;
-
- case フェーズ.フェードアウト:
- this._背景画像.描画する( gd, 0f, 0f );
- this._フェードアウト.描画する( gd, this._フェードインアウト用パネル );
- break;
-
- case フェーズ.完了:
- break;
- }
- }
-
private 画像 _背景画像;