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); }
public override void OnManagedリソースの作成() { if (this.b活性化してない) { return; } this.tx背景 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_diffselect_background.png")); this.txヘッダー = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_diffselect_header_panel.png")); this.txフッター = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_footer panel.png")); this.txカーソル大 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_diff_coursol1.png")); this.txカーソル小 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_diff_coursol2.png")); this.tx説明背景 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_information_BG.png")); this.tx説明1 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_information.png")); this.txレベル星 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_diffboard_star.png")); this.tx譜面分岐 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_diffboard_branch.png")); this.soundSelectAnnounce = CDTXMania.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\DiffSelect.ogg")); this.list難易度選択項目 = new List <ST難易度選択項目>(); if (this.list難易度選択項目 != null) { for (int i = 0; i < 8; i++) { // 項目リストを作る ST難易度選択項目 stDiffList = new ST難易度選択項目(); switch (i) { case 0: // 戻る stDiffList.b選択可 = true; stDiffList.str項目名 = "back"; stDiffList.e項目種類 = E項目種類.戻る; stDiffList.ptパネル座標 = new Point(249, 114); stDiffList.rectパネル位置 = new Rectangle(0, 0, 0, 0); stDiffList.txパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_item_back.png")); this.list難易度選択項目.Add(stDiffList); break; case 1: // オプション stDiffList.b選択可 = false; stDiffList.str項目名 = "option"; stDiffList.e項目種類 = E項目種類.オプション; stDiffList.ptパネル座標 = new Point(319, 114); stDiffList.rectパネル位置 = new Rectangle(0, 0, 0, 0); stDiffList.txパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_item_option.png")); this.list難易度選択項目.Add(stDiffList); break; case 2: // 音色 stDiffList.b選択可 = false; stDiffList.str項目名 = "se"; stDiffList.e項目種類 = E項目種類.音色; stDiffList.ptパネル座標 = new Point(389, 114); stDiffList.rectパネル位置 = new Rectangle(0, 0, 0, 0); stDiffList.txパネル = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\5_item_se.png")); this.list難易度選択項目.Add(stDiffList); break; case 3: stDiffList.b選択可 = false; stDiffList.e項目種類 = E項目種類.かんたん; stDiffList.str項目名 = "Diff:0"; stDiffList.ptパネル座標 = new Point(450, 80); stDiffList.rectパネル位置 = new Rectangle(0, 0, 0, 0); this.list難易度選択項目.Add(stDiffList); break; case 4: stDiffList.b選択可 = false; stDiffList.e項目種類 = E項目種類.ふつう; stDiffList.str項目名 = "Diff:1"; stDiffList.ptパネル座標 = new Point(550, 80); stDiffList.rectパネル位置 = new Rectangle(0, 0, 0, 0); this.list難易度選択項目.Add(stDiffList); break; case 5: stDiffList.b選択可 = false; stDiffList.e項目種類 = E項目種類.むずかしい; stDiffList.str項目名 = "Diff:2"; stDiffList.ptパネル座標 = new Point(650, 0); stDiffList.rectパネル位置 = new Rectangle(0, 0, 0, 0); this.list難易度選択項目.Add(stDiffList); break; case 6: stDiffList.b選択可 = false; stDiffList.e項目種類 = E項目種類.おに; stDiffList.str項目名 = "Diff:3"; stDiffList.ptパネル座標 = new Point(750, 0); stDiffList.rectパネル位置 = new Rectangle(0, 0, 0, 0); this.list難易度選択項目.Add(stDiffList); break; //case 7: // stDiffList.b選択可 = CDTXMania.stage選曲.act曲リスト.r現在選択中の曲.arスコア[ 4 ] != null ? true : false; // stDiffList.e項目種類 = E項目種類.エディット; // stDiffList.str項目名 = "Diff:4"; // stDiffList.ptパネル座標 = new Point( 850, 0 ); // stDiffList.rectパネル位置 = new Rectangle( 0, 0, 0, 0 ); // this.list難易度選択項目.Add( stDiffList ); // break; } } } base.OnManagedリソースの作成(); }