// 進行と描画 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; } }
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.現在のフェーズ = フェーズ.オープン完了; } } }
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; } }
// 進行と描画 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; } }
// 生成と終了 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.現在のフェーズ = フェーズ.フェードイン; }
// 活性化と非活性化 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.活性化する(); } }
/// <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.現在のフェーズ = フェーズ.オープン完了; } } }
// 生成と終了 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.現在のフェーズ = フェーズ.開始; }
protected override void On活性化(グラフィックデバイス gd) { using (Log.Block(FDKUtilities.現在のメソッド名)) { this.現在のフェーズ = フェーズ.開始; } }
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; } }
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; } }
// 活性化と非活性化 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.活性化する(); } }
// 生成と終了 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.現在のフェーズ = フェーズ.オープン; }
/// <summary> /// アイキャッチのオープンアニメーションを開始する。 /// </summary> public virtual void オープンする(float 速度倍率 = 1.0f) { // 派生クラスでこのメソッドをオーバーライドし、 // オープン用のストーリーボードと変数の生成、トラジションの追加、ストーリーボードの開始コードなどを記述すること。 this.現在のフェーズ = フェーズ.オープン; }
// 活性化と非活性化 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.活性化する(); } }
// 進行と描画 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; } }
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; } }
protected override void On活性化(グラフィックデバイス gd) { using (Log.Block(FDKUtilities.現在のメソッド名)) { this._帯ブラシ = new SolidColorBrush(gd.D2DDeviceContext, new Color4(0f, 0f, 0f, 0.8f)); this.現在のフェーズ = フェーズ.表示; } }
protected override void On活性化() { using (Log.Block(FDKUtilities.現在のメソッド名)) { this.現在のフェーズ = フェーズ.フェードイン; this._初めての進行描画 = true; } }
// 進行と描画 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; } } }
// 生成と終了 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.現在のフェーズ = フェーズ.表示; }
// 生成と終了 public 終了ステージ() { using var _ = new LogBlock(Log.現在のメソッド名); this._背景画像 = new 画像D2D(@"$(Images)\ExitStage\Background.jpg"); // 最初のフェーズへ。 this.現在のフェーズ = フェーズ.開始; }
protected override void On活性化() { using (Log.Block(FDKUtilities.現在のメソッド名)) { App.システムサウンド.再生する(設定.システムサウンド種別.終了ステージ_開始音); this.現在のフェーズ = フェーズ.開始; } }
// 活性化と非活性化 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.活性化する(); } }
public override void On非活性化() { using (Log.Block(FDKUtilities.現在のメソッド名)) { this._背景画像?.Dispose(); this.現在のフェーズ = フェーズ.完了; base.On非活性化(); } }