diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigList.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigList.cs" index 5cb16252a..a20d7f712 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigList.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CActConfigList.cs" @@ -76,7 +76,7 @@ public void t項目リストの設定_System() "Return to left menu." ); this.list項目リスト.Add( this.iSystemReturnToMenu ); - this.iSystemReloadDTX = new CItemBase( "Reload Songs", CItemBase.Eパネル種別.通常, + this.iSystemReloadDTX = new CItemBase( "曲データ再読込み", CItemBase.Eパネル種別.通常, "曲データの一覧情報を取得し直します。", "Reload song data." ); this.list項目リスト.Add( this.iSystemReloadDTX ); @@ -87,7 +87,7 @@ public void t項目リストの設定_System() // new string[] { "OFF", "HALF", "FULL" } ); //this.list項目リスト.Add( this.iCommonDark ); - this.iTaikoPlayerCount = new CItemInteger( "Player", 1, 2, CDTXMania.ConfigIni.nPlayerCount, + this.iTaikoPlayerCount = new CItemInteger( "プレイ人数", 1, 2, CDTXMania.ConfigIni.nPlayerCount, "プレイ人数切り替え:\n2にすると演奏画面が2人プレイ専用のレイアウトになり、2P専用譜面を読み込むようになります。", "" ); this.list項目リスト.Add( this.iTaikoPlayerCount ); @@ -97,7 +97,7 @@ public void t項目リストの設定_System() "Risky mode:\nSet over 1, in case you'd like to specify\n the number of Poor/Miss times to be\n FAILED.\nSet 0 to disable Risky mode." ); this.list項目リスト.Add( this.iSystemRisky ); - this.iCommonPlaySpeed = new CItemInteger("PlaySpeed", 5, 40, CDTXMania.ConfigIni.n演奏速度, + this.iCommonPlaySpeed = new CItemInteger("再生速度", 5, 40, CDTXMania.ConfigIni.n演奏速度, "曲の演奏速度を、速くしたり遅くした\n" + "りすることができます。\n" + "(※一部のサウンドカードでは正しく\n" + @@ -201,10 +201,10 @@ public void t項目リストの設定_System() "BGMの再生:\nこれをOFFにすると、BGM を再生しな\nくなります。", "Turn OFF if you don't want to play\n BGM." ); this.list項目リスト.Add( this.iSystemBGMSound ); - this.iSystemAudienceSound = new CItemToggle( "Audience", CDTXMania.ConfigIni.b歓声を発声する, - "歓声の再生:\nこれをOFFにすると、歓声を再生しな\nくなります。", - "Turn ON if you want to be cheered\n at the end of fill-in zone or not." ); - this.list項目リスト.Add( this.iSystemAudienceSound ); + //this.iSystemAudienceSound = new CItemToggle( "Audience", CDTXMania.ConfigIni.b歓声を発声する, + // "歓声の再生:\nこれをOFFにすると、歓声を再生しな\nくなります。", + // "Turn ON if you want to be cheered\n at the end of fill-in zone or not." ); + //this.list項目リスト.Add( this.iSystemAudienceSound ); //this.iSystemDamageLevel = new CItemList( "DamageLevel", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eダメージレベル, // "ゲージ減少割合:\nMiss ヒット時のゲージの減少度合い\nを指定します。\nRiskyが1以上の場合は無効となります", // "Damage level at missing (and\n recovering level) at playing.\nThis setting is ignored when Risky >= 1.", @@ -228,11 +228,11 @@ public void t項目リストの設定_System() // "ストイック(禁欲)モード:\n以下をまとめて表示ON/OFFします。\n_プレビュー画像/動画\n_リザルト画像/動画\n_NowLoading画像\n_演奏画面の背景画像\n_BGA 画像 / AVI 動画\n_グラフ画像\n", // "Turn ON to disable drawing\n * preview image / movie\n * result image / movie\n * nowloading image\n * wallpaper (in playing screen)\n * BGA / AVI (in playing screen)" ); //this.list項目リスト.Add( this.iSystemStoicMode ); - this.iSystemShowLag = new CItemList( "ShowLagTime", CItemBase.Eパネル種別.通常, CDTXMania.ConfigIni.nShowLagType, - "ズレ時間表示:\nジャストタイミングからのズレ時間(ms)\nを表示します。\n OFF: ズレ時間を表示しません。\n ON: ズレ時間を表示します。\n GREAT-: PERFECT以外の時のみ\n表示します。", - "About displaying the lag from\n the \"just timing\".\n OFF: Don't show it.\n ON: Show it.\n GREAT-: Show it except you've\n gotten PERFECT.", - new string[] { "OFF", "ON", "GREAT-" } ); - this.list項目リスト.Add( this.iSystemShowLag ); + //this.iSystemShowLag = new CItemList( "ShowLagTime", CItemBase.Eパネル種別.通常, CDTXMania.ConfigIni.nShowLagType, + // "ズレ時間表示:\nジャストタイミングからのズレ時間(ms)\nを表示します。\n OFF: ズレ時間を表示しません。\n ON: ズレ時間を表示します。\n GREAT-: PERFECT以外の時のみ\n表示します。", + // "About displaying the lag from\n the \"just timing\".\n OFF: Don't show it.\n ON: Show it.\n GREAT-: Show it except you've\n gotten PERFECT.", + // new string[] { "OFF", "ON", "GREAT-" } ); + //this.list項目リスト.Add( this.iSystemShowLag ); this.iSystemAutoResultCapture = new CItemToggle( "Autosaveresult", CDTXMania.ConfigIni.bIsAutoResultCapture, "リザルト画像自動保存機能:\nONにすると、ハイスコア/ハイスキル時に\n自動でリザルト画像を曲データと同じ\nフォルダに保存します。", "AutoSaveResult:\nTurn ON to save your result screen\n image automatically when you get\n hiscore/hiskill." ); @@ -390,7 +390,7 @@ public void t項目リストの設定_System() ""); this.list項目リスト.Add( this.iTaikoAutoSection ); - this.iSystemSkinSubfolder = new CItemList( "Skin (General)", CItemBase.Eパネル種別.通常, nSkinIndex, + this.iSystemSkinSubfolder = new CItemList( "Skin (全体)", CItemBase.Eパネル種別.通常, nSkinIndex, "スキン切替:\n" + "スキンを切り替えます。\n", //"CONFIGURATIONを抜けると、設定した\n" + @@ -418,7 +418,7 @@ public void t項目リストの設定_System() "Settings for the system key/pad inputs." ); this.list項目リスト.Add( this.iSystemGoToKeyAssign ); - + OnListMenuの初期化(); this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.System; } @@ -766,9 +766,9 @@ public void t項目リストの設定_Drums() this.iTaikoJudgeCountDisp = new CItemToggle( "JudgeCountDisp", CDTXMania.ConfigIni.bJudgeCountDisplay, "左下に判定数を表示します。\n" + - "", - "\n" + - ""); + "(1人プレイ専用)", + "Show the JudgeCount\n" + + "(SinglePlay Only)"); this.list項目リスト.Add( this.iTaikoJudgeCountDisp ); this.iDrumsGoToKeyAssign = new CItemBase( "KEY CONFIG", CItemBase.Eパネル種別.通常, @@ -777,6 +777,7 @@ public void t項目リストの設定_Drums() "Settings for the drums key/pad inputs." ); this.list項目リスト.Add( this.iDrumsGoToKeyAssign ); + OnListMenuの初期化(); this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.Drums; } @@ -793,6 +794,8 @@ public void t項目リストの設定_Guitar() "左側のメニューに戻ります。", "Return to left menu." ); this.list項目リスト.Add( this.iGuitarReturnToMenu ); + + OnListMenuの初期化(); this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.Guitar; } @@ -810,6 +813,7 @@ public void t項目リストの設定_Bass() "Return to left menu." ); this.list項目リスト.Add( this.iBassReturnToMenu ); + OnListMenuの初期化(); this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.Bass; } @@ -1182,6 +1186,7 @@ public void t項目リストの設定_KeyAssignSystem() "Capture key assign:\nTo assign key for screen capture.\n (You can use keyboard only. You can't\nuse pads to capture screenshot." ); this.list項目リスト.Add( this.iKeyAssignSystemCapture ); + OnListMenuの初期化(); this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.KeyAssignSystem; } @@ -1280,7 +1285,7 @@ public void t項目リストの設定_KeyAssignDrums() "Drums key assign:\nTo assign key/pads for LeftBassDrum\n button." ); this.list項目リスト.Add( this.iKeyAssignTaikoRBlue2P ); - + OnListMenuの初期化(); this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.KeyAssignDrums; } @@ -1323,6 +1328,8 @@ public void t項目リストの設定_KeyAssignGuitar() // "ギターのキー設定:\nキャンセルボタンへのキーの割り当\nてを設定します。", // "Guitar key assign:\nTo assign key/pads for Cancel button."); //this.list項目リスト.Add(this.iKeyAssignGuitarCancel); + + OnListMenuの初期化(); this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.KeyAssignGuitar; } @@ -1365,6 +1372,7 @@ public void t項目リストの設定_KeyAssignBass() // "ベースのキー設定:\nキャンセルボタンへのキーの割り当\nてを設定します。", // "Bass key assign:\nTo assign key/pads for Cancel button." ); //this.list項目リスト.Add( this.iKeyAssignBassCancel ); + OnListMenuの初期化(); this.n現在の選択項目 = 0; this.eメニュー種別 = Eメニュー種別.KeyAssignBass; } @@ -1437,6 +1445,9 @@ public override void On活性化() nSkinSampleIndex = -1; #endregion + this.prvFont = new CPrivateFastFont( CSkin.Path( @"Graphics\fonts\mplus-1p-heavy.ttf" ), 20 ); // t項目リストの設定 の前に必要 +// this.listMenu = new List(); + this.t項目リストの設定_Bass(); // #27795 2012.3.11 yyagi; System設定の中でDrumsの設定を参照しているため、 this.t項目リストの設定_Guitar(); // 活性化の時点でDrumsの設定も入れ込んでおかないと、System設定中に例外発生することがある。 this.t項目リストの設定_Drums(); // @@ -1462,7 +1473,8 @@ public override void On非活性化() this.tConfigIniへ記録する(); this.list項目リスト.Clear(); this.ct三角矢印アニメ = null; - + + prvFont.Dispose(); base.On非活性化(); #region [ Skin変更 ] if ( CDTXMania.Skin.GetCurrentSkinSubfolderFullName( true ) != this.skinSubFolder_org ) @@ -1533,6 +1545,33 @@ public override void OnManagedリソースの解放() base.OnManagedリソースの解放(); } + private void OnListMenuの初期化() + { + OnListMenuの解放(); + this.listMenu = new stMenuItemRight[ this.list項目リスト.Count ]; + } + + /// + /// 事前にレンダリングしておいたテクスチャを解放する。 + /// + private void OnListMenuの解放() + { + if ( listMenu != null ) + { + for ( int i = 0; i < listMenu.Length; i++ ) + { + if ( listMenu[ i ].txParam != null ) + { + listMenu[ i ].txParam.Dispose(); + } + if ( listMenu[ i ].txMenuItemRight != null ) + { + listMenu[ i ].txMenuItemRight.Dispose(); + } + } + this.listMenu = null; + } + } public override int On進行描画() { throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" ); @@ -1695,61 +1734,81 @@ public int t進行描画( bool b項目リスト側にフォーカスがある ) #endregion #region [ 現在の行の項目名を描画。] //----------------- - CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 56, y + 19, this.list項目リスト[ nItem ].str項目名 ); + if ( listMenu[ nItem ].txMenuItemRight != null ) // 自前のキャッシュに含まれているようなら、再レンダリングせずキャッシュを使用 + { + listMenu[ nItem ].txMenuItemRight.t2D描画( CDTXMania.app.Device, x + 20, y + 12 ); + } + else + { + Bitmap bmpItem = prvFont.DrawPrivateFont( this.list項目リスト[ nItem ].str項目名, Color.White, Color.Black ); + listMenu[ nItem ].txMenuItemRight = CDTXMania.tテクスチャの生成( bmpItem ); + // ctItem.t2D描画( CDTXMania.app.Device, ( x + 0x12 ) * Scale.X, ( y + 12 ) * Scale.Y - 20 ); + // CDTXMania.tテクスチャの解放( ref ctItem ); + CDTXMania.t安全にDisposeする( ref bmpItem ); + } + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 0x12, y + 12, this.list項目リスト[ nItem ].str項目名 ); //----------------- #endregion #region [ 現在の行の項目の要素を描画。] //----------------- - switch( this.list項目リスト[ nItem ].e種別 ) + string strParam = null; + bool b強調 = false; + switch ( this.list項目リスト[ nItem ].e種別 ) { case CItemBase.E種別.ONorOFFトグル: #region [ *** ] //----------------- - CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 420, y + 25, ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF" ); + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF" ); + strParam = ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF"; break; - //----------------- + //----------------- #endregion case CItemBase.E種別.ONorOFFor不定スリーステート: #region [ *** ] //----------------- - switch( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 ) + switch ( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 ) { case CItemThreeState.E状態.ON: - CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 420, y + 25, "ON" ); + strParam = "ON"; break; case CItemThreeState.E状態.不定: - CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 420, y + 25, "- -" ); + strParam = "- -"; break; default: - CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 420, y + 25, "OFF" ); + strParam = "OFF"; break; } + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "ON" ); break; - //----------------- + //----------------- #endregion case CItemBase.E種別.整数: // #24789 2011.4.8 yyagi: add PlaySpeed supports (copied them from OPTION) #region [ *** ] //----------------- - if( this.list項目リスト[ nItem ] == this.iCommonPlaySpeed ) + if ( this.list項目リスト[ nItem ] == this.iCommonPlaySpeed ) { double d = ( (double) ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 ) / 20.0; - CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 420, y + 25, d.ToString( "0.000" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 ); + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, d.ToString( "0.000" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 ); + strParam = d.ToString( "0.000" ); } - else if( this.list項目リスト[ nItem ] == this.iDrumsScrollSpeed || this.list項目リスト[ nItem ] == this.iGuitarScrollSpeed || this.list項目リスト[ nItem ] == this.iBassScrollSpeed ) + else if ( this.list項目リスト[ nItem ] == this.iDrumsScrollSpeed || this.list項目リスト[ nItem ] == this.iGuitarScrollSpeed || this.list項目リスト[ nItem ] == this.iBassScrollSpeed ) { float f = ( ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 + 1 ) * 0.5f; - CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 420, y + 25, f.ToString( "x0.0" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 ); + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, f.ToString( "x0.0" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 ); + strParam = f.ToString( "x0.0" ); } else { - CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 420, y + 25, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( n行番号 == 0 ) && this.b要素値にフォーカス中 ); + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( n行番号 == 0 ) && this.b要素値にフォーカス中 ); + strParam = ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(); } + b強調 = ( n行番号 == 0 ) && this.b要素値にフォーカス中; break; - //----------------- + //----------------- #endregion case CItemBase.E種別.リスト: // #28195 2012.5.2 yyagi: add Skin supports @@ -1757,23 +1816,53 @@ public int t進行描画( bool b項目リスト側にフォーカスがある ) //----------------- { CItemList list = (CItemList) this.list項目リスト[ nItem ]; - CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 420, y + 25, list.list項目値[ list.n現在選択されている項目番号 ] ); + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] ); + strParam = list.list項目値[ list.n現在選択されている項目番号 ]; - #region [ 必要な場合に、Skinのサンプルを生成_描画する。#28195 2012.5.2 yyagi ] + #region [ 必要な場合に、Skinのサンプルを生成・描画する。#28195 2012.5.2 yyagi ] if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder ) { tGenerateSkinSample(); // 最初にSkinの選択肢にきたとき(Enterを押す前)に限り、サンプル生成が発生する。 if ( txSkinSample1 != null ) { - txSkinSample1.t2D描画( CDTXMania.app.Device, 56, 300 ); + txSkinSample1.t2D描画( CDTXMania.app.Device, 124, 409 ); } } #endregion break; } - //----------------- + //----------------- #endregion } + if ( b強調 ) + { + Bitmap bmpStr = b強調 ? + prvFont.DrawPrivateFont( strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) : + prvFont.DrawPrivateFont( strParam, Color.White, Color.Black ); + CTexture txStr = CDTXMania.tテクスチャの生成( bmpStr, false ); + txStr.t2D描画( CDTXMania.app.Device, x + 400, y + 12 ); + CDTXMania.tテクスチャの解放( ref txStr ); + CDTXMania.t安全にDisposeする( ref bmpStr ); + } + else + { + int nIndex = this.list項目リスト[ nItem ].GetIndex(); + if ( listMenu[ nItem ].nParam != nIndex || listMenu[ nItem ].txParam == null ) + { + stMenuItemRight stm = listMenu[ nItem ]; + stm.nParam = nIndex; + object o = this.list項目リスト[ nItem ].obj現在値(); + stm.strParam = ( o == null ) ? "" : o.ToString(); + + Bitmap bmpStr = + prvFont.DrawPrivateFont( strParam, Color.White, Color.Black ); + stm.txParam = CDTXMania.tテクスチャの生成( bmpStr, false ); + CDTXMania.t安全にDisposeする( ref bmpStr ); + + listMenu[ nItem ] = stm; + } + listMenu[ nItem ].txParam.t2D描画( CDTXMania.app.Device, ( x + 400 ), y + 12 ); + } //----------------- #endregion @@ -1957,6 +2046,18 @@ private enum Eメニュー種別 private CTexture tx三角矢印; private CTexture tx通常項目行パネル; + private CPrivateFastFont prvFont; + //private List list項目リスト_str最終描画名; + private struct stMenuItemRight + { + // public string strMenuItem; + public CTexture txMenuItemRight; + public int nParam; + public string strParam; + public CTexture txParam; + } + private stMenuItemRight[] listMenu; + private CTexture txSkinSample1; // #28195 2012.5.2 yyagi private string[] skinSubFolders; // private string[] skinNames; // diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CStage\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CStage\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260.cs" index 2d04db159..d4b8a74ca 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CStage\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/04.\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260/CStage\343\202\263\343\203\263\343\203\225\343\202\243\343\202\260.cs" @@ -114,6 +114,19 @@ public override void OnManagedリソースの作成() // OPTIONと画 this.tx上部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_header panel.png" ) ); this.tx下部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_footer panel.png" ) ); this.txMenuカーソル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig menu cursor.png" ) ); + prvFont = new CPrivateFastFont( CSkin.Path( @"Graphics\fonts\mplus-1p-heavy.ttf" ), 20 ); + string[] strMenuItem = { "System", "Drums", "Guitar", "Bass", "Exit" }; + txMenuItemLeft = new CTexture[ strMenuItem.Length, 2 ]; + for ( int i = 0; i < strMenuItem.Length; i++ ) + { + Bitmap bmpStr; + bmpStr = prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black ); + txMenuItemLeft[ i, 0 ] = CDTXMania.tテクスチャの生成( bmpStr, false ); + bmpStr.Dispose(); + bmpStr = prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black, Color.Yellow, Color.OrangeRed ); + txMenuItemLeft[ i, 1 ] = CDTXMania.tテクスチャの生成( bmpStr, false ); + bmpStr.Dispose(); + } if( this.bメニューにフォーカス中 ) { this.t説明文パネルに現在選択されているメニューの説明を描画する(); @@ -134,6 +147,15 @@ public override void OnManagedリソースの解放() // OPTIONと同 CDTXMania.tテクスチャの解放( ref this.tx下部パネル ); CDTXMania.tテクスチャの解放( ref this.txMenuカーソル ); CDTXMania.tテクスチャの解放( ref this.tx説明文パネル ); + prvFont.Dispose(); + for ( int i = 0; i < txMenuItemLeft.GetLength( 0 ); i++ ) + { + txMenuItemLeft[ i, 0 ].Dispose(); + txMenuItemLeft[ i, 0 ] = null; + txMenuItemLeft[ i, 1 ].Dispose(); + txMenuItemLeft[ i, 1 ] = null; + } + txMenuItemLeft = null; base.OnManagedリソースの解放(); } } @@ -184,43 +206,20 @@ public override int On進行描画() #endregion #region [ メニュー ] //--------------------- - string str = "System"; - int num4 = this.actFont.n文字列長dot( str ); - bool flag = this.n現在のメニュー番号 == 0; - this.actFont.t文字列描画( 282 - ( num4 / 2 ), 155, str, flag ); - //str = "Drums Keys"; - //num4 = this.actFont.n文字列長dot( str ); - //flag = this.n現在のメニュー番号 == 1; - //this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 0x7d, str, flag ); - //str = "Guitar Keys"; - //num4 = this.actFont.n文字列長dot( str ); - //flag = this.n現在のメニュー番号 == 2; - //this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 150, str, flag ); - //str = "Bass Keys"; - //num4 = this.actFont.n文字列長dot( str ); - //flag = this.n現在のメニュー番号 == 3; - //this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 0xaf, str, flag ); - //str = "Exit"; - //num4 = this.actFont.n文字列長dot( str ); - //flag = this.n現在のメニュー番号 == 4; - //this.actFont.t文字列描画( 0x8a - ( num4 / 2 ), 200, str, flag ); - str = "Drums"; - num4 = this.actFont.n文字列長dot( str ); - flag = this.n現在のメニュー番号 == 1; - this.actFont.t文字列描画( 282 - ( num4 / 2 ), 192, str, flag ); - str = "Guitar"; - num4 = this.actFont.n文字列長dot( str ); - flag = this.n現在のメニュー番号 == 2; - this.actFont.t文字列描画( 282 - ( num4 / 2 ), 230, str, flag ); - str = "Bass"; - num4 = this.actFont.n文字列長dot( str ); - flag = this.n現在のメニュー番号 == 3; - this.actFont.t文字列描画( 282 - ( num4 / 2 ), 267, str, flag ); - str = "Exit"; - num4 = this.actFont.n文字列長dot( str ); - flag = this.n現在のメニュー番号 == 4; - this.actFont.t文字列描画( 282 - ( num4 / 2 ), 305, str, flag ); - + int menuY = 162 - 22; + int stepY = 39; + for ( int i = 0; i < txMenuItemLeft.GetLength( 0 ); i++ ) + { + //Bitmap bmpStr = (this.n現在のメニュー番号 == i) ? + // prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) : + // prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black ); + //txMenuItemLeft = CDTXMania.tテクスチャの生成( bmpStr, false ); + int flag = ( this.n現在のメニュー番号 == i ) ? 1 : 0; + int num4 = txMenuItemLeft[ i, flag ].sz画像サイズ.Width; + txMenuItemLeft[ i, flag ].t2D描画( CDTXMania.app.Device, 282 - ( num4 / 2 ), menuY ); //55 + //txMenuItem.Dispose(); + menuY += stepY; + } //--------------------- #endregion #region [ 説明文パネル ] @@ -451,6 +450,8 @@ public CCounter this[ int index ] private CTexture tx上部パネル; private CTexture tx説明文パネル; private CTexture tx背景; + private CPrivateFastFont prvFont; + private CTexture[ , ] txMenuItemLeft; private void tカーソルを下へ移動する() { diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs" index 415ee35b1..56e41f0e7 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/CStage\346\274\224\345\245\217\347\224\273\351\235\242\345\205\261\351\200\232.cs" @@ -1548,6 +1548,12 @@ protected unsafe E判定 tチップのヒット処理( long nHitTime, CDTX.CChip { nAddScore = nAddScore / 2; } + + if( pChip.nチャンネル番号 == 0x13 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B ) + { + nAddScore = nAddScore * 2; + } + this.actScore.Add( E楽器パート.TAIKO, bIsAutoPlay, nAddScore, nPlayer ); } else if( CDTXMania.DTX.nScoreModeTmp == 2 ) @@ -1593,7 +1599,7 @@ protected unsafe E判定 tチップのヒット処理( long nHitTime, CDTX.CChip nAddScore = (int)( nAddScore * 10 ); //大音符のボーナス - if( pChip.nチャンネル番号 == 0x13 || pChip.nチャンネル番号 == 0x14 ) + if( pChip.nチャンネル番号 == 0x13 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B ) { nAddScore = nAddScore * 2; } @@ -1661,7 +1667,7 @@ protected unsafe E判定 tチップのヒット処理( long nHitTime, CDTX.CChip nAddScore = (int)( nAddScore * 10 ); //大音符のボーナス - if( pChip.nチャンネル番号 == 0x13 || pChip.nチャンネル番号 == 0x14 ) + if( pChip.nチャンネル番号 == 0x13 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B ) { nAddScore = nAddScore * 2; } diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\201\343\203\203\343\203\227\343\203\225\343\202\241\343\202\244\343\202\242D.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\201\343\203\203\343\203\227\343\203\225\343\202\241\343\202\244\343\202\242D.cs" index 7f70ff031..e56773e12 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\201\343\203\203\343\203\227\343\203\225\343\202\241\343\202\244\343\202\242D.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\201\343\203\203\343\203\227\343\203\225\343\202\241\343\202\244\343\202\242D.cs" @@ -121,6 +121,8 @@ public virtual void Start( int nLane, E判定 judge, int player ) break; case 0x13: case 0x14: + case 0x1A: + case 0x1B: this.st状態_大[ j ].ct進行 = new CCounter( 0, 9, 20, CDTXMania.Timer ); this.st状態_大[ j ].judge = judge; this.st状態_大[ j ].nIsBig = 1; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\254\343\203\274\343\203\263\345\244\252\351\274\223.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\254\343\203\274\343\203\263\345\244\252\351\274\223.cs" index acbd80bb1..02d06acd2 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\254\343\203\274\343\203\263\345\244\252\351\274\223.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\203\254\343\203\274\343\203\263\345\244\252\351\274\223.cs" @@ -760,6 +760,8 @@ public virtual void Start( int nLane, E判定 judge, bool b両手入力, int nPl break; case 0x13: case 0x14: + case 0x1A: + case 0x1B: { if( b両手入力 ) this.st状態[ nPlayer ].nIsBig = 1; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\346\274\224\345\245\217\347\265\202\344\272\206\346\274\224\345\207\272.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\346\274\224\345\245\217\347\265\202\344\272\206\346\274\224\345\207\272.cs" index 084ab3b84..49b069065 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\346\274\224\345\245\217\347\265\202\344\272\206\346\274\224\345\207\272.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/07.\346\274\224\345\245\217/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\346\274\224\345\245\217\347\265\202\344\272\206\346\274\224\345\207\272.cs" @@ -87,169 +87,176 @@ public override int On進行描画() this.ct進行メイン.t進行(); //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.灰, this.ct進行メイン.n現在の値.ToString() ); - - if( CDTXMania.stage演奏ドラム画面.actGauge.db現在のゲージ値[ 0 ] >= 80 ) + //仮置き + int[] y = new int[] { 210, 386 }; + for( int i = 0; i < CDTXMania.ConfigIni.nPlayerCount; i++ ) { - //this.ct進行メイン.n現在の値 = 18; - if( this.soundClear != null && !this.b再生済み ) + if( CDTXMania.stage演奏ドラム画面.actGauge.db現在のゲージ値[ i ] >= 80 ) { - this.soundClear.t再生を開始する(); - this.b再生済み = true; - } - - #region[ 文字 ] - //登場アニメは20フレーム。うち最初の5フレームは半透過状態。 - float[] f文字拡大率 = new float[] { 1.04f, 1.11f, 1.15f, 1.19f, 1.23f, 1.26f, 1.30f, 1.31f, 1.32f, 1.32f, 1.32f, 1.30f, 1.30f, 1.26f, 1.25f, 1.19f, 1.15f, 1.11f, 1.05f, 1.0f }; - int[] n透明度 = new int[] { 43, 85, 128, 170, 213, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }; - if( this.ct進行メイン.n現在の値 >= 17 ) - { - if( this.ct進行メイン.n現在の値 <= 36 ) - { - this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 17 ]; - this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 17 ]; - this.tx文字.t2D描画( CDTXMania.app.Device, 634, (int)( 210 - ( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 17 ] ) - 90 ) ), new Rectangle( 0, 0, 90, 90 ) ); - } - else + //this.ct進行メイン.n現在の値 = 18; + if( this.soundClear != null && !this.b再生済み ) { - this.tx文字.vc拡大縮小倍率.Y = 1.0f; - this.tx文字.t2D描画( CDTXMania.app.Device, 634, 210, new Rectangle( 0, 0, 90, 90 ) ); + this.soundClear.t再生を開始する(); + this.b再生済み = true; } - } - if( this.ct進行メイン.n現在の値 >= 19 ) - { - if( this.ct進行メイン.n現在の値 <= 38 ) + + #region[ 文字 ] + //登場アニメは20フレーム。うち最初の5フレームは半透過状態。 + float[] f文字拡大率 = new float[] { 1.04f, 1.11f, 1.15f, 1.19f, 1.23f, 1.26f, 1.30f, 1.31f, 1.32f, 1.32f, 1.32f, 1.30f, 1.30f, 1.26f, 1.25f, 1.19f, 1.15f, 1.11f, 1.05f, 1.0f }; + int[] n透明度 = new int[] { 43, 85, 128, 170, 213, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }; + if( this.ct進行メイン.n現在の値 >= 17 ) { - this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 19 ]; - this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 19 ]; - this.tx文字.t2D描画( CDTXMania.app.Device, 692, (int)( 210 - ( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 19 ] ) - 90 ) ), new Rectangle( 90, 0, 90, 90 ) ); + if( this.ct進行メイン.n現在の値 <= 36 ) + { + this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 17 ]; + this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 17 ]; + this.tx文字.t2D描画( CDTXMania.app.Device, 634, (int)( y[ i ] - ( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 17 ] ) - 90 ) ), new Rectangle( 0, 0, 90, 90 ) ); + } + else + { + this.tx文字.vc拡大縮小倍率.Y = 1.0f; + this.tx文字.t2D描画( CDTXMania.app.Device, 634, y[ i ], new Rectangle( 0, 0, 90, 90 ) ); + } } - else + if( this.ct進行メイン.n現在の値 >= 19 ) { - this.tx文字.vc拡大縮小倍率.Y = 1.0f; - this.tx文字.t2D描画( CDTXMania.app.Device, 692, 210, new Rectangle( 90, 0, 90, 90 ) ); + if( this.ct進行メイン.n現在の値 <= 38 ) + { + this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 19 ]; + this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 19 ]; + this.tx文字.t2D描画( CDTXMania.app.Device, 692, (int)( y[ i ] - ( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 19 ] ) - 90 ) ), new Rectangle( 90, 0, 90, 90 ) ); + } + else + { + this.tx文字.vc拡大縮小倍率.Y = 1.0f; + this.tx文字.t2D描画( CDTXMania.app.Device, 692, y[ i ], new Rectangle( 90, 0, 90, 90 ) ); + } } - } - this.tx文字.vc拡大縮小倍率.Y = 1.0f; - if( this.ct進行メイン.n現在の値 >= 21 ) - { - if( this.ct進行メイン.n現在の値 <= 40 ) + this.tx文字.vc拡大縮小倍率.Y = 1.0f; + if( this.ct進行メイン.n現在の値 >= 21 ) { - this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 21 ]; - this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 21 ]; - this.tx文字.t2D描画( CDTXMania.app.Device, 750, 210 - (int)( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 21 ] ) - 90 ), new Rectangle( 180, 0, 90, 90 ) ); + if( this.ct進行メイン.n現在の値 <= 40 ) + { + this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 21 ]; + this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 21 ]; + this.tx文字.t2D描画( CDTXMania.app.Device, 750, y[ i ] - (int)( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 21 ] ) - 90 ), new Rectangle( 180, 0, 90, 90 ) ); + } + else + { + this.tx文字.vc拡大縮小倍率.Y = 1.0f; + this.tx文字.t2D描画( CDTXMania.app.Device, 750, y[ i ], new Rectangle( 180, 0, 90, 90 ) ); + } } - else + if( this.ct進行メイン.n現在の値 >= 23 ) { - this.tx文字.vc拡大縮小倍率.Y = 1.0f; - this.tx文字.t2D描画( CDTXMania.app.Device, 750, 210, new Rectangle( 180, 0, 90, 90 ) ); + if( this.ct進行メイン.n現在の値 <= 42 ) + { + this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 23 ]; + this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 23 ]; + this.tx文字.t2D描画( CDTXMania.app.Device, 819, y[ i ] - (int)( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 23 ] ) - 90 ), new Rectangle( 270, 0, 90, 90 ) ); + } + else + { + this.tx文字.vc拡大縮小倍率.Y = 1.0f; + this.tx文字.t2D描画( CDTXMania.app.Device, 819, y[ i ], new Rectangle( 270, 0, 90, 90 ) ); + } } - } - if( this.ct進行メイン.n現在の値 >= 23 ) - { - if( this.ct進行メイン.n現在の値 <= 42 ) + if( this.ct進行メイン.n現在の値 >= 25 ) { - this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 23 ]; - this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 23 ]; - this.tx文字.t2D描画( CDTXMania.app.Device, 819, 210 - (int)( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 23 ] ) - 90 ), new Rectangle( 270, 0, 90, 90 ) ); + if( this.ct進行メイン.n現在の値 <= 44 ) + { + this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 25 ]; + this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 25 ]; + this.tx文字.t2D描画( CDTXMania.app.Device, 890, ( y[ i ] + 2 ) - (int)( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 25 ] ) - 90 ), new Rectangle( 360, 0, 90, 90 ) ); + } + else + { + this.tx文字.vc拡大縮小倍率.Y = 1.0f; + this.tx文字.t2D描画( CDTXMania.app.Device, 890, y[ i ] + 2, new Rectangle( 360, 0, 90, 90 ) ); + } } - else + if( this.ct進行メイン.n現在の値 >= 50 && this.ct進行メイン.n現在の値 < 90 ) { - this.tx文字.vc拡大縮小倍率.Y = 1.0f; - this.tx文字.t2D描画( CDTXMania.app.Device, 819, 210, new Rectangle( 270, 0, 90, 90 ) ); + if( this.ct進行メイン.n現在の値 < 70 ) + { + this.tx文字マスク.n透明度 = ( this.ct進行メイン.n現在の値 - 50 ) * ( 255 / 20); + this.tx文字マスク.t2D描画( CDTXMania.app.Device, 634, y[ i ] - 2 ); + } + else + { + this.tx文字マスク.n透明度 = 255 - ( ( this.ct進行メイン.n現在の値 - 70 ) * ( 255 / 20) ); + this.tx文字マスク.t2D描画( CDTXMania.app.Device, 634, y[ i ] - 2 ); + } } - } - if( this.ct進行メイン.n現在の値 >= 25 ) - { - if( this.ct進行メイン.n現在の値 <= 44 ) + #endregion + #region[ バチお ] + if( this.ct進行メイン.n現在の値 <= 11 ) { - this.tx文字.vc拡大縮小倍率.Y = f文字拡大率[ this.ct進行メイン.n現在の値 - 25 ]; - this.tx文字.n透明度 = n透明度[ this.ct進行メイン.n現在の値 - 25 ]; - this.tx文字.t2D描画( CDTXMania.app.Device, 890, 212 - (int)( ( 90 * f文字拡大率[ this.ct進行メイン.n現在の値 - 25 ] ) - 90 ), new Rectangle( 360, 0, 90, 90 ) ); + if( this.txバチお左_成功[ 1 ] != null ) + { + this.txバチお左_成功[ 1 ].t2D描画( CDTXMania.app.Device, 697, y[ i ] - 30 ); + this.txバチお左_成功[ 1 ].n透明度 = (int)( 11.0 / this.ct進行メイン.n現在の値 ) * 255; + } + if( this.txバチお右_成功[ 1 ] != null ) + { + this.txバチお右_成功[ 1 ].t2D描画( CDTXMania.app.Device, 738, y[ i ] - 30 ); + this.txバチお右_成功[ 1 ].n透明度 = (int)( 11.0 / this.ct進行メイン.n現在の値 ) * 255; + } } - else + else if( this.ct進行メイン.n現在の値 <= 35 ) { - this.tx文字.vc拡大縮小倍率.Y = 1.0f; - this.tx文字.t2D描画( CDTXMania.app.Device, 890, 212, new Rectangle( 360, 0, 90, 90 ) ); + if( this.txバチお左_成功[ 0 ] != null ) + this.txバチお左_成功[ 0 ].t2D描画( CDTXMania.app.Device, 697 - (int)( ( this.ct進行メイン.n現在の値 - 12 ) * 10 ), y[ i ] - 30 ); + if( this.txバチお右_成功[ 0 ] != null ) + this.txバチお右_成功[ 0 ].t2D描画( CDTXMania.app.Device, 738 + (int)( ( this.ct進行メイン.n現在の値 - 12 ) * 10 ), y[ i ] - 30 ); } - } - if( this.ct進行メイン.n現在の値 >= 50 && this.ct進行メイン.n現在の値 < 90 ) - { - if( this.ct進行メイン.n現在の値 < 70 ) + else if( this.ct進行メイン.n現在の値 <= 46 ) { - this.tx文字マスク.n透明度 = ( this.ct進行メイン.n現在の値 - 50 ) * ( 255 / 20); - this.tx文字マスク.t2D描画( CDTXMania.app.Device, 634, 208 ); + if( this.txバチお左_成功[ 0 ] != null ) + { + //2016.07.16 kairera0467 またも原始的... + float[] fRet = new float[]{ 1.0f, 0.99f, 0.98f, 0.97f, 0.96f, 0.95f, 0.96f, 0.97f, 0.98f, 0.99f, 1.0f }; + this.txバチお左_成功[ 0 ].t2D描画( CDTXMania.app.Device, 466, y[ i ] - 30 ); + this.txバチお左_成功[ 0 ].vc拡大縮小倍率 = new SlimDX.Vector3( fRet[ this.ct進行メイン.n現在の値 - 36 ], 1.0f, 1.0f ); + //this.txバチお右_成功[ 0 ].t2D描画( CDTXMania.app.Device, 956 + (( this.ct進行メイン.n現在の値 - 36 ) / 2), 180 ); + this.txバチお右_成功[ 0 ].t2D描画( CDTXMania.app.Device, 1136 - 180 * fRet[ this.ct進行メイン.n現在の値 - 36 ], y[ i ] - 30 ); + this.txバチお右_成功[ 0 ].vc拡大縮小倍率 = new SlimDX.Vector3( fRet[ this.ct進行メイン.n現在の値 - 36 ], 1.0f, 1.0f ); + } } - else + else if( this.ct進行メイン.n現在の値 <= 49 ) { - this.tx文字マスク.n透明度 = 255 - ( ( this.ct進行メイン.n現在の値 - 70 ) * ( 255 / 20) ); - this.tx文字マスク.t2D描画( CDTXMania.app.Device, 634, 208 ); + if( this.txバチお左_成功[ 1 ] != null ) + this.txバチお左_成功[ 1 ].t2D描画( CDTXMania.app.Device, 466, y[ i ] - 30 ); + if( this.txバチお右_成功[ 1 ] != null ) + this.txバチお右_成功[ 1 ].t2D描画( CDTXMania.app.Device, 956, y[ i ] - 30 ); } - } - #endregion - #region[ バチお ] - if( this.ct進行メイン.n現在の値 <= 11 ) - { - if( this.txバチお左_成功[ 1 ] != null ) + else if( this.ct進行メイン.n現在の値 <= 54 ) { - this.txバチお左_成功[ 1 ].t2D描画( CDTXMania.app.Device, 697, 180 ); - this.txバチお左_成功[ 1 ].n透明度 = (int)( 11.0 / this.ct進行メイン.n現在の値 ) * 255; + if( this.txバチお左_成功[ 2 ] != null ) + this.txバチお左_成功[ 2 ].t2D描画( CDTXMania.app.Device, 466, y[ i ] - 30 ); + if( this.txバチお右_成功[ 2 ] != null ) + this.txバチお右_成功[ 2 ].t2D描画( CDTXMania.app.Device, 956, y[ i ] - 30 ); } - if( this.txバチお右_成功[ 1 ] != null ) + else if( this.ct進行メイン.n現在の値 <= 58 ) { - this.txバチお右_成功[ 1 ].t2D描画( CDTXMania.app.Device, 738, 180 ); - this.txバチお右_成功[ 1 ].n透明度 = (int)( 11.0 / this.ct進行メイン.n現在の値 ) * 255; + if( this.txバチお左_成功[ 3 ] != null ) + this.txバチお左_成功[ 3 ].t2D描画( CDTXMania.app.Device, 466, y[ i ] - 30 ); + if( this.txバチお右_成功[ 3 ] != null ) + this.txバチお右_成功[ 3 ].t2D描画( CDTXMania.app.Device, 956, y[ i ] - 30 ); } - } - else if( this.ct進行メイン.n現在の値 <= 35 ) - { - if( this.txバチお左_成功[ 0 ] != null ) - this.txバチお左_成功[ 0 ].t2D描画( CDTXMania.app.Device, 697 - (int)( ( this.ct進行メイン.n現在の値 - 12 ) * 10 ), 180 ); - if( this.txバチお右_成功[ 0 ] != null ) - this.txバチお右_成功[ 0 ].t2D描画( CDTXMania.app.Device, 738 + (int)( ( this.ct進行メイン.n現在の値 - 12 ) * 10 ), 180 ); - } - else if( this.ct進行メイン.n現在の値 <= 46 ) - { - if( this.txバチお左_成功[ 0 ] != null ) + else { - //2016.07.16 kairera0467 またも原始的... - float[] fRet = new float[]{ 1.0f, 0.99f, 0.98f, 0.97f, 0.96f, 0.95f, 0.96f, 0.97f, 0.98f, 0.99f, 1.0f }; - this.txバチお左_成功[ 0 ].t2D描画( CDTXMania.app.Device, 466, 180 ); - this.txバチお左_成功[ 0 ].vc拡大縮小倍率 = new SlimDX.Vector3( fRet[ this.ct進行メイン.n現在の値 - 36 ], 1.0f, 1.0f ); - //this.txバチお右_成功[ 0 ].t2D描画( CDTXMania.app.Device, 956 + (( this.ct進行メイン.n現在の値 - 36 ) / 2), 180 ); - this.txバチお右_成功[ 0 ].t2D描画( CDTXMania.app.Device, 1136 - 180 * fRet[ this.ct進行メイン.n現在の値 - 36 ], 180 ); - this.txバチお右_成功[ 0 ].vc拡大縮小倍率 = new SlimDX.Vector3( fRet[ this.ct進行メイン.n現在の値 - 36 ], 1.0f, 1.0f ); + if( this.txバチお左_成功[ 4 ] != null ) + this.txバチお左_成功[ 4 ].t2D描画( CDTXMania.app.Device, 466, y[ i ] - 30 ); + if( this.txバチお右_成功[ 4 ] != null ) + this.txバチお右_成功[ 4 ].t2D描画( CDTXMania.app.Device, 956, y[ i ] - 30 ); } + #endregion } - else if( this.ct進行メイン.n現在の値 <= 49 ) - { - if( this.txバチお左_成功[ 1 ] != null ) - this.txバチお左_成功[ 1 ].t2D描画( CDTXMania.app.Device, 466, 180 ); - if( this.txバチお右_成功[ 1 ] != null ) - this.txバチお右_成功[ 1 ].t2D描画( CDTXMania.app.Device, 956, 180 ); - } - else if( this.ct進行メイン.n現在の値 <= 54 ) - { - if( this.txバチお左_成功[ 2 ] != null ) - this.txバチお左_成功[ 2 ].t2D描画( CDTXMania.app.Device, 466, 180 ); - if( this.txバチお右_成功[ 2 ] != null ) - this.txバチお右_成功[ 2 ].t2D描画( CDTXMania.app.Device, 956, 180 ); - } - else if( this.ct進行メイン.n現在の値 <= 58 ) - { - if( this.txバチお左_成功[ 3 ] != null ) - this.txバチお左_成功[ 3 ].t2D描画( CDTXMania.app.Device, 466, 180 ); - if( this.txバチお右_成功[ 3 ] != null ) - this.txバチお右_成功[ 3 ].t2D描画( CDTXMania.app.Device, 956, 180 ); - } - else - { - if( this.txバチお左_成功[ 4 ] != null ) - this.txバチお左_成功[ 4 ].t2D描画( CDTXMania.app.Device, 466, 180 ); - if( this.txバチお右_成功[ 4 ] != null ) - this.txバチお右_成功[ 4 ].t2D描画( CDTXMania.app.Device, 956, 180 ); - } - #endregion } + + + if( this.ct進行メイン.b終了値に達した ) { diff --git "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" index 07a6f7f14..1c113e597 100644 Binary files "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" differ