public override int On進行描画() { if (this.b活性化してない) { return(0); } #region [ 初めての進行描画 ] //----------------- if (this.b初めての進行描画) { for (int i = 0; i < 13; i++) { this.ct登場アニメ用[i] = new CCounter(-i * 10, 100, 3, TJAPlayer3.Timer); } this.nスクロールタイマ = CSound管理.rc演奏用タイマ.n現在時刻; TJAPlayer3.stage選曲.t選択曲変更通知(); this.n矢印スクロール用タイマ値 = CSound管理.rc演奏用タイマ.n現在時刻; this.ct三角矢印アニメ.t開始(0, 19, 40, TJAPlayer3.Timer); this.soundSelectAnnounce.tサウンドを再生する(); base.b初めての進行描画 = false; } //----------------- #endregion // 本ステージは、(1)登場アニメフェーズ → (2)通常フェーズ と二段階にわけて進む。 // 2つしかフェーズがないので CStage.eフェーズID を使ってないところがまた本末転倒。 // 進行。 //this.ct三角矢印アニメ.t進行Loop(); if (this.tx背景 != null) { this.tx背景.t2D描画(TJAPlayer3.app.Device, 0, 0); } if (!this.b登場アニメ全部完了) { #region [ (1) 登場アニメフェーズの進行。] //----------------- for (int i = 0; i < 13; i++) // パネルは全13枚。 { this.ct登場アニメ用[i].t進行(); if (this.ct登場アニメ用[i].b終了値に達した) { this.ct登場アニメ用[i].t停止(); } } // 全部の進行が終わったら、this.b登場アニメ全部完了 を true にする。 this.b登場アニメ全部完了 = true; for (int i = 0; i < 13; i++) // パネルは全13枚。 { if (this.ct登場アニメ用[i].b進行中) { this.b登場アニメ全部完了 = false; // まだ進行中のアニメがあるなら false のまま。 break; } } //----------------- #endregion } else { #region [ (2) 通常フェーズの進行。] //----------------- //キー操作 if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.RightArrow)) { this.t次に移動(); } else if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.LeftArrow)) { this.t前に移動(); } else if ((TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) || ((TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Return))))) { TJAPlayer3.stage選曲.actPresound.tサウンド停止(); switch (TJAPlayer3.stage選曲.r現在選択中の曲.eノード種別) { case C曲リストノード.Eノード種別.SCORE: { TJAPlayer3.Skin.sound決定音.t再生する(); TJAPlayer3.stage選曲.t曲を選択する(this.n現在の選択行); } break; case C曲リストノード.Eノード種別.RANDOM: { TJAPlayer3.Skin.sound曲決定音.t再生する(); TJAPlayer3.stage選曲.t曲を選択する(this.n現在の選択行); } break; } } //----------------- #endregion } // 描画。 int i選曲バーX座標 = 673; //選曲バーの座標用 int i選択曲バーX座標 = 665; //選択曲バーの座標用 if (!this.b登場アニメ全部完了) { #region [ (1) 登場アニメフェーズの描画。] //----------------- for (int i = 0; i < 4; i++) // パネルは全13枚。 { } //----------------- #endregion } else { #region [ (2) 通常フェーズの描画。] //----------------- int nバー基準X = 64; TJAPlayer3.act文字コンソール.tPrint(0, 32, C文字コンソール.Eフォント種別.白, this.n現在の選択行.ToString()); for (int i = 0; i < (int)Difficulty.Total; i++) { if (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[i] == null) { continue; } string strFlag = this.n現在の選択行 == i ? "NowSelect" : "UnSelect"; C文字コンソール.Eフォント種別 bColorFlag = this.n現在の選択行 == i ? C文字コンソール.Eフォント種別.赤 : C文字コンソール.Eフォント種別.灰; nバー基準X = nバー基準X + 16; TJAPlayer3.act文字コンソール.tPrint(0, nバー基準X, bColorFlag, strFlag); } //1→3→5→2→4の順で描画する。 for (int j = 0; j < (int)Difficulty.Total; j++) { if (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[n描画順[j]] == null) { continue; } //if( j == 4 ) // break; if (this.tx踏み台[n描画順[j]] != null) { bool bEven = false; if (n描画順[j] % 2 == 0 && n描画順[j] != 0) { bEven = true; } this.tx踏み台[n描画順[j]].t2D描画(TJAPlayer3.app.Device, n踏み台座標[j], 720 - this.tx踏み台[n描画順[j]].szテクスチャサイズ.Height + (bEven ? 35 : 0)); } } //----------------- #endregion } if (this.txヘッダー != null) { this.txヘッダー.t2D描画(TJAPlayer3.app.Device, 0, 0); } if (this.txフッター != null) { this.txフッター.t2D描画(TJAPlayer3.app.Device, 0, 720 - this.txフッター.sz画像サイズ.Height); } if (this.tx説明背景 != null) { this.tx説明背景.t2D描画(TJAPlayer3.app.Device, 340, 600); } if (this.tx説明1 != null) { this.tx説明1.t2D描画(TJAPlayer3.app.Device, 340, 600); } return(0); }
public override int On進行描画() { if (this.b活性化してない) { return(0); } #region [ 初めての進行描画 ] //----------------- if (this.b初めての進行描画) { for (int i = 0; i < 13; i++) { this.ct登場アニメ用[i] = new CCounter(-i * 10, 100, 3, CDTXMania.Timer); } this.ct譜面分岐.t開始(1, 200, 10, CDTXMania.Timer); this.nスクロールタイマ = CSound管理.rc演奏用タイマ.n現在時刻; CDTXMania.stage選曲.t選択曲変更通知(); this.n矢印スクロール用タイマ値 = CSound管理.rc演奏用タイマ.n現在時刻; this.ct三角矢印アニメ.t開始(0, 19, 40, CDTXMania.Timer); // 現在位置をかんたん~おに(エディット)の間に移動させる #if DEBUG this.n現在の選択行 = 0; #else this.n現在の選択行 = 3 + CDTXMania.stage選曲.act曲リスト.n現在選択中の曲の現在の難易度レベル; #endif Point[] ptパネル座標 = new Point[] { new Point(450, 84), new Point(550, 84), new Point(650, 84), new Point(750, 84), new Point(850, 84) }; for (int j = 3; j < 7; j++) { ST難易度選択項目 stDiffList = new ST難易度選択項目(); stDiffList.b選択可 = CDTXMania.stage選曲.act曲リスト.r現在選択中の曲.arスコア[j - 3] != null ? true : false; stDiffList.b譜面分岐 = CDTXMania.stage選曲.act曲リスト.r現在選択中の曲.arスコア[j - 3] != null ? CDTXMania.stage選曲.act曲リスト.r現在選択中の曲.arスコア[j - 3].譜面情報.b譜面分岐[j - 3] : false; stDiffList.e項目種類 = (E項目種類)(j - 3); stDiffList.str項目名 = "Diff:" + j; stDiffList.ptパネル座標 = ptパネル座標[j - 3]; stDiffList.rectパネル位置 = new Rectangle(0, 0, 0, 0); stDiffList.txパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_diffboard_" + (j - 2) + ".png")); this.list難易度選択項目[j] = stDiffList; } this.soundSelectAnnounce?.tサウンドを再生する(); base.b初めての進行描画 = false; } //----------------- #endregion // 進行。 //this.ct三角矢印アニメ.t進行Loop(); this.ct譜面分岐?.t進行Loop(); //if( this.tx背景 != null ) // this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 ); //if( !this.b登場アニメ全部完了 ) //{ // #region [ (1) 登場アニメフェーズの進行。] // //----------------- // //----------------- // #endregion //} //else { #region [ (2) 通常フェーズの進行。] //----------------- //キー操作 if (CDTXMania.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.RightArrow)) { CDTXMania.Skin.soundカーソル移動音.t再生する(); this.t次に移動(); } else if (CDTXMania.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.LeftArrow)) { CDTXMania.Skin.soundカーソル移動音.t再生する(); this.t前に移動(); } else if ((CDTXMania.Pad.b押されたDGB(Eパッド.Decide) || ((CDTXMania.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && CDTXMania.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Return))))) { if (this.list難易度選択項目[this.n現在の選択行].b選択可) { //CDTXMania.stage選曲.actPresound.tサウンド停止(); switch (this.list難易度選択項目[this.n現在の選択行].e項目種類) { case E項目種類.かんたん: case E項目種類.ふつう: case E項目種類.むずかしい: case E項目種類.おに: case E項目種類.エディット: { switch (CDTXMania.stage選曲.r現在選択中の曲.eノード種別) { case C曲リストノード.Eノード種別.SCORE: { CDTXMania.Skin.sound決定音.t再生する(); CDTXMania.stage選曲.t曲を選択する((int)this.list難易度選択項目[this.n現在の選択行].e項目種類); } break; case C曲リストノード.Eノード種別.RANDOM: { CDTXMania.Skin.sound曲決定音.t再生する(); //CDTXMania.stage選曲.n確定された曲の難易度 = (int)this.list難易度選択項目[this.n現在の選択行].e項目種類; CDTXMania.stage選曲.act曲リスト.n現在のアンカ難易度レベル_渡((int)this.list難易度選択項目[this.n現在の選択行].e項目種類); CDTXMania.stage選曲.t曲をランダム選択する(); } break; } } break; case E項目種類.戻る: CDTXMania.stage選曲.t難易度選択画面を閉じる(); break; case E項目種類.オプション: break; case E項目種類.音色: break; } } else { // 選択できない項目だった CDTXMania.Skin.sound選択不可音.t再生する(); } } else if (CDTXMania.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.Escape)) { CDTXMania.stage選曲.t難易度選択画面を閉じる(); } #region [ F2 簡易オプション ] if (CDTXMania.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.F2)) { CDTXMania.Skin.sound変更音.t再生する(); CDTXMania.stage選曲.actQuickConfig.tActivatePopupMenu(E楽器パート.DRUMS); } #endregion #region [ F3 オートON/OFF ] if (CDTXMania.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.F3)) { // [ESC] CDTXMania.Skin.sound変更音.t再生する(); C共通.bToggleBoolian(ref CDTXMania.ConfigIni.b太鼓パートAutoPlay); } #endregion #region [ F4 ゲージ ] if (CDTXMania.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.F4)) { CDTXMania.Skin.sound変更音.t再生する(); if (CDTXMania.ConfigIni.eGaugeMode == Eゲージモード.Normal) { CDTXMania.ConfigIni.eGaugeMode = Eゲージモード.IIDX; } else if (CDTXMania.ConfigIni.eGaugeMode == Eゲージモード.IIDX) { CDTXMania.ConfigIni.eGaugeMode = Eゲージモード.HARD; } else if (CDTXMania.ConfigIni.eGaugeMode == Eゲージモード.HARD) { CDTXMania.ConfigIni.eGaugeMode = Eゲージモード.EXHARD; } else if (CDTXMania.ConfigIni.eGaugeMode == Eゲージモード.EXHARD) { CDTXMania.ConfigIni.eGaugeMode = Eゲージモード.DEATH; } else if (CDTXMania.ConfigIni.eGaugeMode == Eゲージモード.DEATH) { CDTXMania.ConfigIni.eGaugeMode = Eゲージモード.Normal; } } #endregion foreach (var item in this.list難易度選択項目) { if (item.txパネル != null) { item.txパネル.n透明度 = item.b選択可 ? 255 : 127; item.txパネル.t2D描画(CDTXMania.app.Device, item.ptパネル座標.X, item.ptパネル座標.Y); if (item.b譜面) { if (item.b譜面分岐 ? (this.ct譜面分岐.n現在の値 >= 0 && this.ct譜面分岐.n現在の値 < 100) : false) { this.tx譜面分岐?.t2D描画(CDTXMania.app.Device, item.ptパネル座標.X, item.ptパネル座標.Y); //CDTXMania.act文字コンソール.tPrint( CDTXMania.Skin.nSelectSongDiffIconX + (60 * i), 343, C文字コンソール.Eフォント種別.赤, "B\nr\na\nn\nc\nh" ); } else { for (int i = 0; i < CDTXMania.stage選曲.r現在選択中のスコア.譜面情報.nレベル[(int)item.e項目種類]; i++) { this.txレベル星.t2D描画(CDTXMania.app.Device, item.ptパネル座標.X + 40, (item.ptパネル座標.Y + 392) - (20 * i)); } } } } } switch (this.list難易度選択項目[this.n現在の選択行].e項目種類) { case E項目種類.かんたん: case E項目種類.ふつう: case E項目種類.むずかしい: case E項目種類.おに: case E項目種類.エディット: if (this.txカーソル大 != null) { this.txカーソル大.t2D描画(CDTXMania.app.Device, this.list難易度選択項目[this.n現在の選択行].ptパネル座標.X, this.list難易度選択項目[this.n現在の選択行].ptパネル座標.Y, new Rectangle(0, 0, 102, 530)); } break; case E項目種類.戻る: case E項目種類.オプション: case E項目種類.音色: if (this.txカーソル小 != null) { this.txカーソル小.t2D描画(CDTXMania.app.Device, this.list難易度選択項目[this.n現在の選択行].ptパネル座標.X, this.list難易度選択項目[this.n現在の選択行].ptパネル座標.Y, new Rectangle(0, 0, 70, 310)); } break; } //----------------- #endregion } #region [ デバッグ用表示 ] //----------------- #if DEBUG int nバー基準Y = 64; CDTXMania.act文字コンソール.tPrint(0, 32, C文字コンソール.Eフォント種別.白, this.n現在の選択行.ToString()); for (int i = 0; i < this.list難易度選択項目.Count; i++) { C文字コンソール.Eフォント種別 bColorFlag = this.n現在の選択行 == i ? C文字コンソール.Eフォント種別.赤 : (this.list難易度選択項目[i].b選択可 ? C文字コンソール.Eフォント種別.白 : C文字コンソール.Eフォント種別.灰); nバー基準Y = nバー基準Y + 16; CDTXMania.act文字コンソール.tPrint(0, nバー基準Y, bColorFlag, this.list難易度選択項目[i].str項目名); } //----------------- #endif #endregion if (this.txフッター != null) { this.txフッター.t2D描画(CDTXMania.app.Device, 0, 720 - this.txフッター.sz画像サイズ.Height); } return(0); }