OSDN Git Service

進行と描画を分離していた箇所のうち、高速進行が不要なものは進行描画メソッドに移行。
[strokestylet/CsWin10Desktop3.git] / StrokeStyleT / ステージ / 起動 / 起動ステージ.cs
index c7ff0f1..e481644 100644 (file)
@@ -57,9 +57,12 @@ namespace SST.ステージ.起動
                        }
                }
 
-               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.現在のフェーズ )
                        {
@@ -70,28 +73,41 @@ namespace SST.ステージ.起動
                                        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 フェーズ.完了:
@@ -112,35 +128,6 @@ namespace SST.ステージ.起動
                        }
                }
 
-               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 画像 _背景画像;