示例#1
0
        // 進行と描画


        public void 進行する()
        {
            this._システム情報.FPSをカウントしプロパティを更新する();

            Global.App.ドラム入力.すべての入力デバイスをポーリングする();

            switch (this.現在のフェーズ)
            {
            case フェーズ.表示:

                if (Global.App.ドラム入力.確定キーが入力された())
                {
                    #region " 確定 "
                    //----------------
                    Global.App.システムサウンド.再生する(システムサウンド種別.タイトルステージ_確定音);
                    Global.App.アイキャッチ管理.アイキャッチを選択しクローズする(nameof(シャッター));
                    this.現在のフェーズ = フェーズ.フェードアウト;
                    //----------------
                    #endregion
                }
                else if (Global.App.ドラム入力.キャンセルキーが入力された())
                {
                    #region " キャンセル "
                    //----------------
                    this.現在のフェーズ = フェーズ.キャンセル;
                    //----------------
                    #endregion
                }
                break;
            }
        }
        public void 描画する()
        {
            var dc = Global.既定のD2D1DeviceContext;

            dc.Transform = Global.拡大行列DPXtoPX;

            this._舞台画像.進行描画する(dc);
            this._注意文.描画する(0f, 760f);
            this._プレビュー画像.描画する();
            this._難易度.描画する(dc);

            this._曲名を描画する(dc);
            this._サブタイトルを描画する(dc);

            switch (this.現在のフェーズ)
            {
            case フェーズ.フェードイン:
                Global.App.アイキャッチ管理.現在のアイキャッチ.進行描画する(dc);
                if (Global.App.アイキャッチ管理.現在のアイキャッチ.現在のフェーズ == アイキャッチ.フェーズ.オープン完了)
                {
                    this.現在のフェーズ = フェーズ.表示;
                }
                break;

            case フェーズ.表示:
                スコアを読み込む();
                Global.App.ドラム入力.すべての入力デバイスをポーリングする();      // 先行入力があったらここでキャンセル
                this.現在のフェーズ = フェーズ.完了;
                break;
            }
        }
示例#3
0
        public override void 描画する()
        {
            this._システム情報.VPSをカウントする();

            var dc = DXResources.Instance.既定のD2D1DeviceContext;

            this._背景.進行描画する(dc);
            DXResources.Instance.D2DBatchDraw(dc, () => {
                dc.FillRectangle(new RectangleF(0f, 36f, DXResources.Instance.設計画面サイズ.Width, DXResources.Instance.設計画面サイズ.Height - 72f), this._黒マスクブラシ);
            });
            this._プレビュー画像を描画する(dc);
            this._曲名パネル.描画する(dc, 660f, 796f);
            this._曲名を描画する(dc);
            this._サブタイトルを描画する(dc);
            this._演奏パラメータ結果.描画する(dc, 1317f, 716f, this._結果);
            this._ランク.進行描画する(this._結果.ランク);
            this._システム情報.描画する(dc);

            switch (this.現在のフェーズ)
            {
            case フェーズ.フェードアウト:
                App進行描画.アイキャッチ管理.現在のアイキャッチ.進行描画する(dc);
                if (App進行描画.アイキャッチ管理.現在のアイキャッチ.現在のフェーズ == アイキャッチ.フェーズ.クローズ完了)
                {
                    this.現在のフェーズ = フェーズ.完了;
                }
                break;
            }
        }
        protected virtual void 進行描画する(グラフィックデバイス gd, StoryboardStatus 描画しないStatus)
        {
            bool すべて完了 = true;

            // ストーリーボードが動作しているなら、すべて完了 フラグを切る。
            //if( context.ストーリーボード.Status != StoryboardStatus.Ready )
            //	すべて完了 = false;

            // 描画するステータスなら描画する。
            //if( context.ストーリーボード.Status != 描画しないStatus )
            //{
            //   ...
            //}

            if (すべて完了)
            {
                if (this.現在のフェーズ == フェーズ.クローズ)
                {
                    this.現在のフェーズ = フェーズ.クローズ完了;
                }
                else if (this.現在のフェーズ == フェーズ.オープン)
                {
                    this.現在のフェーズ = フェーズ.オープン完了;
                }
            }
        }
示例#5
0
        public void 描画する()
        {
            var dc = Global.既定のD2D1DeviceContext;

            dc.Transform = Global.拡大行列DPXtoPX;

            this._システム情報.VPSをカウントする();

            this._背景.進行描画する(dc);
            Global.D2DBatchDraw(dc, () => {
                dc.FillRectangle(new RectangleF(0f, 36f, Global.設計画面サイズ.Width, Global.設計画面サイズ.Height - 72f), this._黒マスクブラシ);
            });
            this._プレビュー画像を描画する(dc);
            this._曲名パネル.描画する(660f, 796f);
            this._曲名を描画する(dc);
            this._サブタイトルを描画する(dc);
            this._演奏パラメータ結果.描画する(dc, 1317f, 716f, this._結果);
            this._ランク.進行描画する(200f, 300f, this._結果.ランク);
            this._難易度.進行描画する(dc, 1341f, 208f, Global.App.演奏スコア.難易度);
            this._曲別SKILL.進行描画する(dc, 1329f, 327f, this._結果.スキル);
            this._達成率.進行描画する(dc, 1233f, 428f, this._結果.Achievement);
            this._システム情報.描画する(dc);

            switch (this.現在のフェーズ)
            {
            case フェーズ.フェードアウト:
                Global.App.アイキャッチ管理.現在のアイキャッチ.進行描画する(dc);
                if (Global.App.アイキャッチ管理.現在のアイキャッチ.現在のフェーズ == アイキャッチ.フェーズ.クローズ完了)
                {
                    this.現在のフェーズ = フェーズ.完了;
                }
                break;
            }
        }
示例#6
0
        // 進行と描画


        public void 進行する()
        {
            switch (this.現在のフェーズ)
            {
            case フェーズ.開始:
                Global.App.システムサウンド.再生する(システムサウンド種別.終了ステージ_開始音);
                this._カウンタ   = new Counter(0, 1, 値をひとつ増加させるのにかける時間ms: 1000);
                this.現在のフェーズ = フェーズ.表示中;
                break;

            case フェーズ.表示中:
                if (this._カウンタ.終了値に達した)
                {
                    this.現在のフェーズ = フェーズ.開始音終了待ち;
                }
                break;

            case フェーズ.開始音終了待ち:
                if (!Global.App.システムサウンド.再生中(システムサウンド種別.終了ステージ_開始音))
                {
                    this.現在のフェーズ = フェーズ.完了;     // 再生が終わったらフェーズ遷移。
                }
                break;
            }
        }
示例#7
0
        // 生成と終了


        public 選曲ステージ()
        {
            using var _ = new LogBlock(Log.現在のメソッド名);

            this._舞台画像               = new 舞台画像(@"$(Images)\Background_Dark.jpg");
            this._システム情報             = new システム情報();
            this._UpdatingSoglistパネル = new UpdatingSoglistパネル();
            this._表示方法選択パネル          = new 表示方法選択パネル();
            this._青い線             = new 青い線();
            this._選択曲枠ランナー        = new 選択曲枠ランナー();
            this._選曲リスト           = new 選曲リスト();
            this._難易度と成績          = new 難易度と成績();
            this._難易度と成績.青い線を取得する = () => this._青い線;    // 外部依存アクションの接続
            this._曲ステータスパネル       = new 曲ステータスパネル();
            this._BPMパネル          = new BPMパネル();
            this._曲別スキルと達成率       = new 曲別スキルと達成率();
            this._ステージタイマー        = new 画像D2D(@"$(Images)\SelectStage\StageTimer.png");
            this._既定のノード画像        = new 画像D2D(@"$(Images)\DefaultPreviewImage.png");
            this._現行化前のノード画像      = new 画像D2D(@"$(Images)\PreviewImageWaitForActivation.png");
            this._SongNotFound    = new 文字列画像D2D()
            {
                表示文字列 = Properties.Resources.TXT_曲が見つかりません,
            };
            this._QuickConfig画面 = null !; // 使用時に生成
            this._フェートアウト後のフェーズ = フェーズ.確定_選曲;

            Global.App.システムサウンド.再生する(システムサウンド種別.選曲ステージ_開始音);
            Global.App.アイキャッチ管理.現在のアイキャッチ.オープンする();
            this._導線アニメをリセットする();

            // 最初のフェーズへ。
            this.現在のフェーズ = フェーズ.フェードイン;
        }
示例#8
0
        // 活性化と非活性化


        public override void 活性化する()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                if (this.活性化中)
                {
                    return;
                }

                this.活性化中 = true;

                this._コンソールフォント = new 画像フォント(@"$(System)images\コンソールフォント20x32.png", @"$(System)images\コンソールフォント20x32.yaml", 文字幅補正dpx: -6f);

                if (!App.ビュアーモードである)
                {
                    App進行描画.システムサウンド.読み込む(システムサウンド種別.認証ステージ_開始音);       // この2つを先行読み込み。残りはシステムサウンド構築フェーズにて。
                    App進行描画.システムサウンド.読み込む(システムサウンド種別.認証ステージ_ループBGM);    //

                    App進行描画.システムサウンド.再生する(システムサウンド種別.起動ステージ_開始音);
                    App進行描画.システムサウンド.再生する(システムサウンド種別.起動ステージ_ループBGM, ループ再生する: true);
                }

                this._コンソール表示内容 = new List <string>()
                {
                    $"{App.属性<AssemblyTitleAttribute>().Title} Release {App.リリース番号:000} - Beats with your heart.",
                    $"{App.属性<AssemblyCopyrightAttribute>().Copyright}",
                    $"",
                };

                this.現在のフェーズ = フェーズ.開始;


                base.活性化する();
            }
        }
示例#9
0
        /// <summary>
        ///     派生クラスでこのメソッドをオーバーライドし、アイキャッチ画面の描画を行う。
        /// </summary>
        protected virtual void 進行描画する(DeviceContext dc, StoryboardStatus 描画しないStatus)
        {
            bool すべて完了 = true;

            // 派生クラスでは、ここで以下の(1)~(3)を実装すること。

            // (1) ストーリーボードが動作しているなら、すべて完了 フラグを false にする。
            //     例:
            //      if( context.ストーリーボード.Status != StoryboardStatus.Ready )
            //	        すべて完了 = false;

            // (2) アイキャッチ画面を描画する。
            //     ただし、現在のストーリーボードのステータスが 描画しないStatus であるなら、描画はしないこと。
            //     例:
            //          if( context.ストーリーボード.Status != 描画しないStatus )
            //          {
            //              // 描画処理
            //          }

            // (3) すべて完了したかどうかチェックする。
            if (すべて完了)
            {
                if (this.現在のフェーズ == フェーズ.クローズ)
                {
                    this.現在のフェーズ = フェーズ.クローズ完了;
                }
                else if (this.現在のフェーズ == フェーズ.オープン)
                {
                    this.現在のフェーズ = フェーズ.オープン完了;
                }
            }
        }
示例#10
0
        // 生成と終了


        public 起動ステージ()
        {
            using var _ = new LogBlock(Log.現在のメソッド名);

            if (!Global.Options.ビュアーモードである)
            {
                // この2つを先行読み込み。残りはシステムサウンド構築フェーズにて。
                Global.App.システムサウンド.読み込む(システムサウンド種別.起動ステージ_開始音);
                Global.App.システムサウンド.読み込む(システムサウンド種別.起動ステージ_ループBGM);

                // さっそく再生。
                Global.App.システムサウンド.再生する(システムサウンド種別.起動ステージ_開始音);
                Global.App.システムサウンド.再生する(システムサウンド種別.起動ステージ_ループBGM, ループ再生する: true);
            }
            else
            {
                // ビュアーモードならシステムサウンドなし。
            }

            this._コンソールフォント = new フォント画像D2D(@"$(Images)\ConsoleFont20x32.png", @"$(Images)\ConsoleFont20x32.yaml", 文字幅補正dpx: -6f);

            var copyrights = (AssemblyCopyrightAttribute[])Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);

            this._コンソール表示内容 = new List <string>()
            {
                $"{Application.ProductName} Release {int.Parse( Application.ProductVersion.Split( '.' ).ElementAt( 0 ) ):000} - Beats with your heart.",
                $"{copyrights[ 0 ].Copyright}",
                $"",
            };

            // 最初のフェーズへ。

            this._コンソール表示内容.Add("Boot...");
            this.現在のフェーズ = フェーズ.開始;
        }
示例#11
0
 protected override void On活性化(グラフィックデバイス gd)
 {
     using (Log.Block(FDKUtilities.現在のメソッド名))
     {
         this.現在のフェーズ = フェーズ.開始;
     }
 }
示例#12
0
        protected override void On活性化()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                var 選択曲 = App.曲ツリー.フォーカス曲ノード;
                Debug.Assert(null != 選択曲);

                this._結果 = this.結果を取得する();

                App.システムサウンド.再生する(システムサウンド種別.ステージクリア);

                // 成績をDBに記録。
                if (!(App.ユーザ管理.ログオン中のユーザ.AutoPlayがすべてONである))       // ただし全AUTOなら記録しない。
                {
                    曲DB.成績を追加または更新する(this._結果, App.ユーザ管理.ログオン中のユーザ.ユーザID, 選択曲.曲ファイルハッシュ);
                }

                this._曲名画像.表示文字列     = 選択曲.タイトル;
                this._サブタイトル画像.表示文字列 = 選択曲.サブタイトル;

                this._黒マスクブラシ   = new SolidColorBrush(グラフィックデバイス.Instance.D2DDeviceContext, new Color4(Color3.Black, 0.75f));
                this._プレビュー枠ブラシ = new SolidColorBrush(グラフィックデバイス.Instance.D2DDeviceContext, new Color4(0xFF209292));

                this.現在のフェーズ   = フェーズ.表示;
                this._初めての進行描画 = true;
            }
        }
示例#13
0
        public override void 進行描画する(DeviceContext1 dc)
        {
            switch (this.現在のフェーズ)
            {
            case フェーズ.開始:
                this._カウンタ   = new Counter(0, 1, 値をひとつ増加させるのにかける時間ms: 1000);
                this.現在のフェーズ = フェーズ.表示中;
                break;

            case フェーズ.表示中:
            {
                this._背景画像.描画する(dc);

                if (this._カウンタ.終了値に達した)
                {
                    this.現在のフェーズ = フェーズ.開始音終了待ち;
                }
            }
            break;

            case フェーズ.開始音終了待ち:
            {
                this._背景画像.描画する(dc);

                if (!App.システムサウンド.再生中(設定.システムサウンド種別.終了ステージ_開始音))
                {
                    this.現在のフェーズ = フェーズ.確定;         // 再生が終わったのでフェーズ遷移。
                }
            }
            break;

            case フェーズ.確定:
                break;
            }
        }
示例#14
0
        // 活性化と非活性化


        public override void 活性化する()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                if (this.活性化中)
                {
                    return;
                }

                this._舞台画像           = new 舞台画像();
                this._ウィンドウ画像        = new 画像(@"$(System)images\認証\ユーザ選択ウィンドウ.png");
                this._プレイヤーを選択してください = new 文字列画像()
                {
                    表示文字列     = "プレイヤーを選択してください。",
                    フォントサイズpt = 30f,
                    描画効果      = 文字列画像.効果.ドロップシャドウ,
                };
                this._ユーザリスト = new ユーザリスト();
                this._システム情報 = new システム情報();

                App進行描画.アイキャッチ管理.現在のアイキャッチ.オープンする();

                App進行描画.システムサウンド.再生する(システムサウンド種別.認証ステージ_開始音);
                App進行描画.システムサウンド.再生する(システムサウンド種別.認証ステージ_ループBGM, ループ再生する: true);

                this.現在のフェーズ = フェーズ.フェードイン;


                base.活性化する();
            }
        }
示例#15
0
        // 生成と終了


        public 選曲ステージ()
        {
            using var _ = new LogBlock(Log.現在のメソッド名);

            this._舞台画像               = new 舞台画像(@"$(Images)\Background_Dark.jpg");
            this._システム情報             = new システム情報();
            this._UpdatingSoglistパネル = new UpdatingSoglistパネル();
            this._表示方法選択パネル          = new 表示方法選択パネル();
            this._青い線             = new 青い線();
            this._選択曲枠ランナー        = new 選択曲枠ランナー();
            this._選曲リスト           = new 選曲リスト();
            this._難易度と成績          = new 難易度と成績();
            this._難易度と成績.青い線を取得する = () => this._青い線;    // 外部依存アクションの接続
            this._曲ステータスパネル       = new 曲ステータスパネル();
            this._BPMパネル          = new BPMパネル();
            this._曲別スキルと達成率       = new 曲別スキルと達成率();
            this._ステージタイマー        = new 画像(@"$(Images)\SelectStage\StageTimer.png");
            this._既定のノード画像        = new 画像(@"$(Images)\DefaultPreviewImage.png");
            this._現行化前のノード画像      = new 画像(@"$(Images)\PreviewImageWaitForActivation.png");
            this._SongNotFound    = new 文字列画像D2D()
            {
                表示文字列 =
                    "Song not found...\n" +
                    "Hit BDx2 (in default SPACEx2) to select song folders.",
            };
            this._フェートアウト後のフェーズ = フェーズ.確定_選曲;

            Global.App.システムサウンド.再生する(システムサウンド種別.選曲ステージ_開始音);
            Global.App.アイキャッチ管理.現在のアイキャッチ.オープンする();
            this._導線アニメをリセットする();

            this.現在のフェーズ = フェーズ.フェードイン;
        }
 public virtual void オープンする(グラフィックデバイス gd, float 速度倍率 = 1.0f)
 {
     //
     // ここに、ストーリーボードと変数の生成、トラジションの追加、ストーリーボードの開始コードを記述する。
     //
     this.現在のフェーズ = フェーズ.オープン;
 }
示例#17
0
        /// <summary>
        ///     アイキャッチのオープンアニメーションを開始する。
        /// </summary>
        public virtual void オープンする(float 速度倍率 = 1.0f)
        {
            // 派生クラスでこのメソッドをオーバーライドし、
            // オープン用のストーリーボードと変数の生成、トラジションの追加、ストーリーボードの開始コードなどを記述すること。

            this.現在のフェーズ = フェーズ.オープン;
        }
示例#18
0
        // 活性化と非活性化


        public override void On活性化()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                this._背景    = new 舞台画像();
                this._曲名パネル = new 画像(@"$(System)images\結果\曲名パネル.png");
                this._曲名画像  = new 文字列画像()
                {
                    フォント名     = "HGMaruGothicMPRO",
                    フォントサイズpt = 40f,
                    フォント幅     = FontWeight.Regular,
                    フォントスタイル  = FontStyle.Normal,
                    描画効果      = 文字列画像.効果.縁取り,
                    縁のサイズdpx  = 6f,
                    前景色       = Color4.Black,
                    背景色       = Color4.White,
                };
                this._サブタイトル画像 = new 文字列画像()
                {
                    フォント名     = "HGMaruGothicMPRO",
                    フォントサイズpt = 25f,
                    フォント幅     = FontWeight.Regular,
                    フォントスタイル  = FontStyle.Normal,
                    描画効果      = 文字列画像.効果.縁取り,
                    縁のサイズdpx  = 5f,
                    前景色       = Color4.Black,
                    背景色       = Color4.White,
                };
                this._演奏パラメータ結果 = new 演奏パラメータ結果();
                this._ランク       = new ランク();
                this._システム情報    = new システム情報();


                var 選択曲 = App進行描画.曲ツリー.フォーカス曲ノード;

                this._結果 = this.結果を取得する();

                App進行描画.システムサウンド.再生する(システムサウンド種別.ステージクリア);

                // 成績をDBに記録。
                if (!(App進行描画.ユーザ管理.ログオン中のユーザ.AutoPlayがすべてONである))       // ただし全AUTOなら記録しない。
                {
                    曲DB.成績を追加または更新する(this._結果, App進行描画.ユーザ管理.ログオン中のユーザ.ユーザID, 選択曲.曲ファイルハッシュ);
                }

                this._曲名画像.表示文字列     = 選択曲.タイトル;
                this._サブタイトル画像.表示文字列 = 選択曲.サブタイトル;

                var dc = DXResources.Instance.既定のD2D1DeviceContext;

                this._黒マスクブラシ   = new SolidColorBrush(dc, new Color4(Color3.Black, 0.75f));
                this._プレビュー枠ブラシ = new SolidColorBrush(dc, new Color4(0xFF209292));

                this._背景.ぼかしと縮小を適用する(0.0);      // 即時適用

                this.現在のフェーズ = フェーズ.表示;

                base.On活性化();
            }
        }
        // 進行と描画


        public override void 進行する()
        {
            this._システム情報.FPSをカウントしプロパティを更新する();

            App進行描画.入力管理.すべての入力デバイスをポーリングする();

            switch (this.現在のフェーズ)
            {
            case フェーズ.表示:
                #region " 入力判定 "
                //----------------
                if (App進行描画.入力管理.確定キーが入力された())
                {
                    #region " 確定 "
                    //----------------
                    App進行描画.システムサウンド.再生する(システムサウンド種別.タイトルステージ_確定音);
                    App進行描画.アイキャッチ管理.アイキャッチを選択しクローズする(nameof(シャッター));

                    this.現在のフェーズ = フェーズ.フェードアウト;
                    //----------------
                    #endregion
                }
                else if (App進行描画.入力管理.キャンセルキーが入力された())
                {
                    #region " キャンセル "
                    //----------------
                    this.現在のフェーズ = フェーズ.キャンセル;
                    //----------------
                    #endregion
                }
                //----------------
                #endregion
                break;
            }
        }
        // 活性化と非活性化


        public override void 活性化する()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                if (this.活性化中)
                {
                    return;
                }

                this._舞台画像        = new 舞台画像();
                this._タイトルロゴ      = new 画像(@"$(System)images\タイトルロゴ.png");
                this._パッドを叩いてください = new 文字列画像()
                {
                    表示文字列 = "パッドを叩いてください", フォントサイズpt = 40f, 描画効果 = 文字列画像.効果.縁取り
                };
                this._システム情報 = new システム情報();

                this._帯ブラシ = new SolidColorBrush(グラフィックデバイス.Instance.既定のD2D1DeviceContext, new Color4(0f, 0f, 0f, 0.8f));

                App進行描画.システムサウンド.再生する(システムサウンド種別.タイトルステージ_開始音);
                App進行描画.システムサウンド.再生する(システムサウンド種別.タイトルステージ_ループBGM, ループ再生する: true);

                this.現在のフェーズ = フェーズ.表示;


                base.活性化する();
            }
        }
示例#21
0
        // 進行と描画


        public override void 進行する()
        {
            this._システム情報.FPSをカウントしプロパティを更新する();

            App進行描画.入力管理.すべての入力デバイスをポーリングする();

            switch (this.現在のフェーズ)
            {
            case フェーズ.ユーザ選択:
                #region " ユーザを選択する。"
                //----------------
                if (App進行描画.入力管理.確定キーが入力された())
                {
                    #region " 確定 → フェードアウトへ"
                    //----------------
                    App進行描画.システムサウンド.停止する(システムサウンド種別.認証ステージ_ループBGM);
                    App進行描画.システムサウンド.再生する(システムサウンド種別.認証ステージ_ログイン音);

                    App進行描画.アイキャッチ管理.アイキャッチを選択しクローズする(nameof(回転幕));           // アイキャッチを開始して次のフェーズへ。

                    this.現在のフェーズ = フェーズ.フェードアウト;
                    //----------------
                    #endregion
                }
                else if (App進行描画.入力管理.キャンセルキーが入力された())
                {
                    #region " キャンセル "
                    //----------------
                    App進行描画.システムサウンド.再生する(システムサウンド種別.取消音);

                    this.現在のフェーズ = フェーズ.キャンセル;
                    //----------------
                    #endregion
                }
                else if (App進行描画.入力管理.移動キーが入力された())
                {
                    #region " 上移動 → 前のユーザを選択 "
                    //----------------
                    App進行描画.システムサウンド.再生する(システムサウンド種別.カーソル移動音);

                    this._ユーザリスト.前のユーザを選択する();
                    //----------------
                    #endregion
                }
                else if (App進行描画.入力管理.移動キーが入力された())
                {
                    #region " 下移動 → 次のユーザを選択 "
                    //----------------
                    App進行描画.システムサウンド.再生する(システムサウンド種別.カーソル移動音);

                    this._ユーザリスト.次のユーザを選択する();
                    //----------------
                    #endregion
                }
                //----------------
                #endregion
                break;
            }
        }
示例#22
0
        public override void 描画する()
        {
            this._システム情報.VPSをカウントする();

            var dc = グラフィックデバイス.Instance.既定のD2D1DeviceContext;

            dc.Transform = グラフィックデバイス.Instance.拡大行列DPXtoPX;

            if (null != App進行描画.曲ツリー.フォーカスノード)
            {
                // (A) 曲がある場合 → 通常画面

                this._舞台画像.進行描画する(dc);
                this._曲リスト.進行描画する(dc);
                this._その他パネルを描画する(dc);
                this._表示方法選択パネル.進行描画する(dc);
                this._難易度と成績.描画する(dc, App進行描画.曲ツリー.フォーカス難易度);
                this._曲ステータスパネル.描画する(dc);
                this._プレビュー画像を描画する(dc, App進行描画.曲ツリー.フォーカスノード);
                this._BPMパネル.描画する(dc);
                this._曲別SKILL.進行描画する(dc);
                this._選択曲を囲む枠を描画する(dc);
                this._選択曲枠ランナー.進行描画する(dc);
                this._導線を描画する(dc);
                this._ステージタイマー.描画する(1689f, 37f);
            }
            else
            {
                // (B) 曲が1つもない場合 → Song Not Found 画面

                this._フォーカスノードを初期化する();     // ルートリストが設定された?

                this._舞台画像.進行描画する(dc);
                this._表示方法選択パネル.進行描画する(dc);
                this._ステージタイマー.描画する(1689f, 37f);
                this._SongNotFound.描画する(dc, 1150f, 400f);
            }

            switch (this.現在のフェーズ)
            {
            case フェーズ.フェードイン:
                App進行描画.アイキャッチ管理.現在のアイキャッチ.進行描画する(dc);
                if (App進行描画.アイキャッチ管理.現在のアイキャッチ.現在のフェーズ == アイキャッチ.フェーズ.オープン完了)
                {
                    this.現在のフェーズ = フェーズ.表示;
                }
                this._システム情報.描画する(dc);
                break;

            case フェーズ.表示:
                this._システム情報.描画する(dc);
                break;

            case フェーズ.フェードアウト:
                App進行描画.アイキャッチ管理.現在のアイキャッチ.進行描画する(dc);
                this._システム情報.描画する(dc);
                break;
            }
        }
示例#23
0
 protected override void On活性化(グラフィックデバイス gd)
 {
     using (Log.Block(FDKUtilities.現在のメソッド名))
     {
         this._帯ブラシ   = new SolidColorBrush(gd.D2DDeviceContext, new Color4(0f, 0f, 0f, 0.8f));
         this.現在のフェーズ = フェーズ.表示;
     }
 }
示例#24
0
 protected override void On活性化()
 {
     using (Log.Block(FDKUtilities.現在のメソッド名))
     {
         this.現在のフェーズ   = フェーズ.フェードイン;
         this._初めての進行描画 = true;
     }
 }
示例#25
0
        // 進行と描画


        public void 進行する()
        {
            switch (this.現在のフェーズ)
            {
            case フェーズ.開始:
            {
                #region " 終了ステージ開始音を再生し、表示中フェーズへ。"
                //----------------
                Global.App.システムサウンド.再生する(システムサウンド種別.終了ステージ_開始音);

                this._カウンタ = new Counter(0, 1, 値をひとつ増加させるのにかける時間ms: 1000);

                this.現在のフェーズ = フェーズ.表示中;
                //----------------
                #endregion

                break;
            }

            case フェーズ.表示中:
            {
                #region " 一定時間が経過したら開始音終了待ちフェーズへ。"
                //----------------
                if (this._カウンタ.終了値に達した)
                {
                    this.現在のフェーズ = フェーズ.開始音終了待ち;
                }
                //----------------
                #endregion

                break;
            }

            case フェーズ.開始音終了待ち:
            {
                #region " 開始音の再生が終わったら完了フェーズへ。"
                //----------------
                if (!Global.App.システムサウンド.再生中(システムサウンド種別.終了ステージ_開始音))
                {
                    this.現在のフェーズ = フェーズ.完了;
                }
                //----------------
                #endregion

                break;
            }

            case フェーズ.完了:
            {
                #region " 遷移終了。Appによるステージ遷移待ち。"
                //----------------
                //----------------
                #endregion

                break;
            }
            }
        }
示例#26
0
        // 生成と終了


        public 結果ステージ(成績 result)
        {
            using var _ = new LogBlock(Log.現在のメソッド名);

            this._結果 = result;

            this._背景         = new 舞台画像();
            this._既定のノード画像   = new 画像(@"$(Images)\DefaultPreviewImage.png");
            this._現行化前のノード画像 = new 画像(@"$(Images)\PreviewImageWaitForActivation.png");
            this._曲名パネル      = new 画像(@"$(Images)\ResultStage\ScoreTitlePanel.png");
            this._曲名画像       = new 文字列画像D2D()
            {
                フォント名     = "HGMaruGothicMPRO",
                フォントサイズpt = 40f,
                フォントの太さ   = FontWeight.Regular,
                フォントスタイル  = FontStyle.Normal,
                描画効果      = 文字列画像D2D.効果.縁取り,
                縁のサイズdpx  = 6f,
                前景色       = Color4.Black,
                背景色       = Color4.White,
            };
            this._サブタイトル画像 = new 文字列画像D2D()
            {
                フォント名     = "HGMaruGothicMPRO",
                フォントサイズpt = 25f,
                フォントの太さ   = FontWeight.Regular,
                フォントスタイル  = FontStyle.Normal,
                描画効果      = 文字列画像D2D.効果.縁取り,
                縁のサイズdpx  = 5f,
                前景色       = Color4.Black,
                背景色       = Color4.White,
            };
            this._演奏パラメータ結果 = new 演奏パラメータ結果();
            this._ランク       = new ランク();
            this._難易度       = new 難易度();
            this._曲別SKILL   = new 曲別SKILL();
            this._達成率       = new 達成率();
            this._システム情報    = new システム情報();
            this._黒マスクブラシ   = new SolidColorBrush(Global.既定のD2D1DeviceContext, new Color4(Color3.Black, 0.75f));
            this._プレビュー枠ブラシ = new SolidColorBrush(Global.既定のD2D1DeviceContext, new Color4(0xFF209292));

            Global.App.システムサウンド.再生する(システムサウンド種別.ステージクリア);

            // 成績の反映。
            if (!Global.App.ログオン中のユーザ.AutoPlayがすべてONである)    //ただし、全AUTOなら行わない。
            {
                this._成績を反映する();
            }

            var 選択曲 = Global.App.演奏スコア;

            this._曲名画像.表示文字列     = 選択曲.曲名;
            this._サブタイトル画像.表示文字列 = 選択曲.アーティスト名;

            this._背景.ぼかしと縮小を適用する(0.0);      // 即時適用
            this.現在のフェーズ = フェーズ.表示;
        }
示例#27
0
        // 生成と終了


        public 終了ステージ()
        {
            using var _ = new LogBlock(Log.現在のメソッド名);

            this._背景画像 = new 画像D2D(@"$(Images)\ExitStage\Background.jpg");

            // 最初のフェーズへ。
            this.現在のフェーズ = フェーズ.開始;
        }
示例#28
0
        protected override void On活性化()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                App.システムサウンド.再生する(設定.システムサウンド種別.終了ステージ_開始音);

                this.現在のフェーズ = フェーズ.開始;
            }
        }
示例#29
0
        // 活性化と非活性化


        public override void 活性化する()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                if (this.活性化中)
                {
                    return;
                }

                this._舞台画像         = new 舞台画像(@"$(System)images\舞台_暗.jpg");
                this._システム情報       = new システム情報();
                this._曲リスト         = new 曲リスト();
                this._難易度と成績       = new 難易度と成績();
                this._曲ステータスパネル    = new 曲ステータスパネル();
                this._ステージタイマー     = new テクスチャ(@"$(System)images\選曲\ステージタイマー.png");
                this._青い線          = new 青い線();
                this._選択曲枠ランナー     = new 選択曲枠ランナー();
                this._BPMパネル       = new BPMパネル();
                this._曲別SKILL      = new 曲別SKILL();
                this._表示方法選択パネル    = new 表示方法選択パネル();
                this._SongNotFound = new 文字列画像()
                {
                    表示文字列 =
                        "Song not found...\n" +
                        "Hit BDx2 (in default SPACEx2) to select song folders."
                };

                // 外部接続。
                this._難易度と成績.青い線を取得する = () => this._青い線;


                var dc = グラフィックデバイス.Instance.既定のD2D1DeviceContext;

                this._白   = new SolidColorBrush(dc, Color4.White);
                this._黒   = new SolidColorBrush(dc, Color4.Black);
                this._黒透過 = new SolidColorBrush(dc, new Color4(Color3.Black, 0.5f));
                this._灰透過 = new SolidColorBrush(dc, new Color4(0x80535353));

                this._上に伸びる導線の長さdpx = null;
                this._左に伸びる導線の長さdpx = null;
                this._プレビュー枠の長さdpx  = null;
                this._導線のストーリーボード   = null;

                App進行描画.システムサウンド.再生する(システムサウンド種別.選曲ステージ_開始音);

                this._フォーカスノードを初期化する();

                App進行描画.アイキャッチ管理.現在のアイキャッチ.オープンする();
                this._導線アニメをリセットする();

                this.現在のフェーズ = フェーズ.フェードイン;

                base.活性化する();
            }
        }
示例#30
0
        public override void On非活性化()
        {
            using (Log.Block(FDKUtilities.現在のメソッド名))
            {
                this._背景画像?.Dispose();

                this.現在のフェーズ = フェーズ.完了;

                base.On非活性化();
            }
        }