• R/O
  • HTTP
  • SSH
  • HTTPS

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

DTXManiaXG(Ver.K)4.00Series


Commit MetaInfo

修訂f8e380f215c6cc0d1bad083cc00b467ec391b1f4 (tree)
時間2019-05-25 23:03:27
作者kairera0467 <gennsou76573@gmai...>
Commiterkairera0467

Log Message

#xxxxx Matixx風選曲画面にBPM表示を追加

#xxxxx Matixx風選曲画面に判定数表示を追加(画像はGD初代の使い回しです...)

#xxxxx Matixx風選曲画面に演奏スキル、達成率の表示を数字だけ追加

#xxxxx SongsDBのBPM情報に「最小BPM」と「最高BPM」を追加

Change Summary

  • delete: "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\202\263\343\202\242\343\200\201\346\233\262/CDTX.cs"
  • delete: "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\202\263\343\202\242\343\200\201\346\233\262/CSong\347\256\241\347\220\206.cs"
  • delete: "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\202\263\343\202\242\343\200\201\346\233\262/C\343\202\271\343\202\263\343\202\242.cs"
  • delete: "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/05.\351\201\270\346\233\262/CStage\351\201\270\346\233\262.cs"
  • delete: "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/05.\351\201\270\346\233\262/GITADORA/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GITADORA.cs"
  • delete: "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"
  • delete: "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/GITADORA/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GD.cs"
  • delete: "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/08.\347\265\220\346\236\234/GITADORA/CActResultImageGD.cs"
  • delete: "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/08.\347\265\220\346\236\234/GITADORA/CActResultParameterPanelGD.cs"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/5_BPM Number.png"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/7_Ratenumber_l.png"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/7_Ratenumber_s.png"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Rate Number Big.png"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Rate Number Small.png"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Skill Number Big.png"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Skill Number Small.png"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Skill Number dot.png"
  • delete: "\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll"

差異

--- "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\202\263\343\202\242\343\200\201\346\233\262/CDTX.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\202\263\343\202\242\343\200\201\346\233\262/CDTX.cs"
@@ -1355,6 +1355,8 @@ namespace DTXMania
13551355 public bool bUse556x710BGAAVI;
13561356 public STDGBVALUE<bool> bCLASSIC譜面である;
13571357 public bool b強制的にXG譜面にする;
1358+ public double db最低BPM;
1359+ public double db最高BPM;
13581360
13591361 #if TEST_NOTEOFFMODE
13601362 public STLANEVALUE<bool> b演奏で直前の音を消音する;
@@ -1461,6 +1463,9 @@ namespace DTXMania
14611463 this.bCLASSIC譜面である.Bass = false;
14621464 this.b強制的にXG譜面にする = false;
14631465
1466+ this.db最低BPM = 9999.9;
1467+ this.db最高BPM = 0.0;
1468+
14641469 #if TEST_NOTEOFFMODE
14651470 this.bHH演奏で直前のHHを消音する = true;
14661471 this.bGUITAR演奏で直前のGUITARを消音する = true;
@@ -2920,6 +2925,9 @@ namespace DTXMania
29202925 chip.n整数値 = 0;
29212926 chip.n整数値_内部番号 = cbpm.n内部番号;
29222927 this.listChip.Insert( 0, chip );
2928+
2929+ this.db最低BPM = Math.Min( this.db最低BPM, cbpm.dbBPM値 );
2930+ this.db最高BPM = Math.Max( this.db最高BPM, cbpm.dbBPM値 );
29232931 }
29242932 else
29252933 {
@@ -2929,6 +2937,9 @@ namespace DTXMania
29292937 chip.n整数値 = 0;
29302938 chip.n整数値_内部番号 = cbpm.n内部番号;
29312939 this.listChip.Insert( 0, chip );
2940+
2941+ this.db最低BPM = Math.Min( this.db最低BPM, cbpm.dbBPM値 );
2942+ this.db最高BPM = Math.Max( this.db最高BPM, cbpm.dbBPM値 );
29322943 }
29332944 if ( this.listBMP.ContainsKey( 0 ) )
29342945 {
--- "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\202\263\343\202\242\343\200\201\346\233\262/CSong\347\256\241\347\220\206.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\202\263\343\202\242\343\200\201\346\233\262/CSong\347\256\241\347\220\206.cs"
@@ -819,6 +819,8 @@ namespace DTXMania
819819 cスコア.譜面情報.n可視チップ数.FT = br.ReadInt32();
820820 cスコア.譜面情報.n可視チップ数.CY = br.ReadInt32();
821821 cスコア.譜面情報.n可視チップ数.RD = br.ReadInt32();
822+ cスコア.譜面情報.最低Bpm = br.ReadDouble();
823+ cスコア.譜面情報.最大Bpm = br.ReadDouble();
822824
823825 //Debug.WriteLine( "songs.db: " + cスコア.ファイル情報.ファイルの絶対パス );
824826 return cスコア;
@@ -883,6 +885,9 @@ namespace DTXMania
883885 c曲リストノード.arスコア[ i ].譜面情報.Bpm = cdtx.BPM;
884886 c曲リストノード.arスコア[ i ].譜面情報.Duration = 0; // (cdtx.listChip == null)? 0 : cdtx.listChip[ cdtx.listChip.Count - 1 ].n発声時刻ms;
885887 c曲リストノード.arスコア[ i ].譜面情報.n可視チップ数 = cdtx.n可視チップ数;
888+ c曲リストノード.arスコア[ i ].譜面情報.最低Bpm = cdtx.db最低BPM;
889+ c曲リストノード.arスコア[ i ].譜面情報.最大Bpm = cdtx.db最高BPM;
890+
886891 this.nファイルから反映できたスコア数++;
887892 cdtx.On非活性化();
888893 //Debug.WriteLine( "★" + this.nファイルから反映できたスコア数 + " " + c曲リストノード.arスコア[ i ].譜面情報.タイトル );
@@ -1202,6 +1207,8 @@ namespace DTXMania
12021207 bw.Write( node.arスコア[ i ].譜面情報.n可視チップ数.FT );
12031208 bw.Write( node.arスコア[ i ].譜面情報.n可視チップ数.CY );
12041209 bw.Write( node.arスコア[ i ].譜面情報.n可視チップ数.RD );
1210+ bw.Write( node.arスコア[ i ].譜面情報.最低Bpm );
1211+ bw.Write( node.arスコア[ i ].譜面情報.最大Bpm );
12051212 this.nSongsDBへ出力できたスコア数++;
12061213 }
12071214 }
@@ -1766,7 +1773,7 @@ Debug.WriteLine( dBPM + ":" + c曲リストノード.strタイトル );
17661773
17671774 #region [ private ]
17681775 //-----------------
1769- private const string SONGSDB_VERSION = "SongsDB3(ver.K)rev4";
1776+ private const string SONGSDB_VERSION = "SongsDB3(ver.K)rev5";
17701777 private List<string> listStrBoxDefSkinSubfolderFullName;
17711778
17721779 private int t比較0_共通( C曲リストノード n1, C曲リストノード n2 )
--- "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\202\263\343\202\242\343\200\201\346\233\262/C\343\202\271\343\202\263\343\202\242.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\202\263\343\202\242\343\200\201\346\233\262/C\343\202\271\343\202\263\343\202\242.cs"
@@ -73,6 +73,8 @@ namespace DTXMania
7373 public STDGBVALUE<bool> b完全にCLASSIC譜面である;
7474 public STDGBVALUE<bool> b譜面がある;
7575 public CDTX.STLANEINT n可視チップ数;
76+ public double 最低Bpm;
77+ public double 最大Bpm;
7678
7779 [Serializable]
7880 [StructLayout( LayoutKind.Sequential )]
@@ -355,6 +357,8 @@ namespace DTXMania
355357 this.譜面情報.b譜面がある.Guitar = false;
356358 this.譜面情報.b譜面がある.Bass = false;
357359 this.譜面情報.n可視チップ数 = new CDTX.STLANEINT();
360+ this.譜面情報.最低Bpm = 120.0;
361+ this.譜面情報.最大Bpm = 120.0;
358362 }
359363 }
360364 }
--- "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/05.\351\201\270\346\233\262/CStage\351\201\270\346\233\262.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/05.\351\201\270\346\233\262/CStage\351\201\270\346\233\262.cs"
@@ -438,7 +438,7 @@ namespace DTXMania
438438 }
439439 if( CDTXMania.ConfigIni.bLogDTX詳細ログ出力 )
440440 {
441- StringBuilder builder = new StringBuilder( 0x400 );
441+ StringBuilder builder = new StringBuilder( 1024 );
442442 builder.Append( string.Format( "ランダムインデックスリストを作成しました: {0}曲: ", song.stackランダム演奏番号.Count ) );
443443 for( int m = 0; m < count; m++ )
444444 {
--- "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/05.\351\201\270\346\233\262/GITADORA/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GITADORA.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/05.\351\201\270\346\233\262/GITADORA/CActSelect\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GITADORA.cs"
@@ -18,6 +18,7 @@ namespace DTXMania
1818 {
1919 this.tレベル数値フォント初期化();
2020 this.tスキル数値フォント初期化();
21+ this.tBPM数値フォント初期化();
2122 base.b活性化してない = true;
2223 }
2324 public override void t選択曲が変更された()
@@ -130,6 +131,8 @@ namespace DTXMania
130131 this.txスキル数字_大_少数部 = CDTXMania.tテクスチャの生成( CSkin.Path(@"Graphics\5_Skill number Large Decimal.png") );
131132 this.txスキル数字_大_小数点 = CDTXMania.tテクスチャの生成( CSkin.Path(@"Graphics\5_Skill number Large Dot.png") );
132133
134+ this.txBPM数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_BPM Number.png") );
135+
133136 base.OnManagedリソースの作成();
134137 }
135138 }
@@ -155,6 +158,8 @@ namespace DTXMania
155158 CDTXMania.tテクスチャの解放( ref this.txスキル数字_大_少数部 );
156159 CDTXMania.tテクスチャの解放( ref this.txスキル数字_大_小数点 );
157160
161+ CDTXMania.tテクスチャの解放( ref this.txBPM数字 );
162+
158163 base.OnManagedリソースの解放();
159164 }
160165 }
@@ -257,12 +262,18 @@ namespace DTXMania
257262 }
258263 //-----------------
259264 #endregion
260-
261- #region[ 曲別スキル値(左側)を描画 ]
262- this.tスキル値の描画_大( 79, 216, this.db現在選択中の曲の曲別スキル値.Drums );
263- #endregion
264-
265265 this.t難易度カーソル描画( 426, base.n現在選択中の曲の難易度 );
266+
267+ if( CDTXMania.stage選曲GITADORA.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE )
268+ {
269+ #region[ 曲別スキル値(左側)を描画 ]
270+ this.tスキル値の描画_大( 79, 216, this.db現在選択中の曲の曲別スキル値.Drums );
271+ #endregion
272+ #region[ BPM値を描画 ]
273+ // ToDo:速度変化への対応(DB側もいじらないとダメ)
274+ this.tBPM値の描画( 120, 302, CDTXMania.stage選曲GITADORA.r現在選択中のスコア.譜面情報.最低Bpm, CDTXMania.stage選曲GITADORA.r現在選択中のスコア.譜面情報.最大Bpm );
275+ #endregion
276+ }
266277 }
267278 #endregion
268279 }
@@ -366,6 +377,7 @@ namespace DTXMania
366377 private CTexture txスキル数字_大_整数部;
367378 private CTexture txスキル数字_大_少数部;
368379 private CTexture txスキル数字_大_小数点;
380+ private CTexture txBPM数字; // 2019.04.30 kairera0467
369381
370382 private struct ST数字フォント
371383 {
@@ -377,6 +389,7 @@ namespace DTXMania
377389 private ST数字フォント[] STレベル数字_中_少数;
378390 private ST数字フォント[] STスキル数字_大_整数;
379391 private ST数字フォント[] STスキル数字_大_少数;
392+ private ST数字フォント[] STBPM数字;
380393
381394 private void tレベル数値フォント初期化()
382395 {
@@ -434,6 +447,24 @@ namespace DTXMania
434447 this.STスキル数字_大_少数[ 9 ] = new ST数字フォント() { ch文字 = '9', rect = new Rectangle( 0, 46, 46, 46 ) };
435448 }
436449
450+ private void tBPM数値フォント初期化()
451+ {
452+ this.STBPM数字 = new ST数字フォント[] {
453+ new ST数字フォント(){ ch文字 = '0', rect = new Rectangle( 0, 0, 28, 28 ) },
454+ new ST数字フォント(){ ch文字 = '1', rect = new Rectangle( 28, 0, 28, 28 ) },
455+ new ST数字フォント(){ ch文字 = '2', rect = new Rectangle( 56, 0, 28, 28 ) },
456+ new ST数字フォント(){ ch文字 = '3', rect = new Rectangle( 84, 0, 28, 28 ) },
457+ new ST数字フォント(){ ch文字 = '4', rect = new Rectangle( 112, 0, 28, 28 ) },
458+ new ST数字フォント(){ ch文字 = '5', rect = new Rectangle( 0, 28, 28, 28 ) },
459+ new ST数字フォント(){ ch文字 = '6', rect = new Rectangle( 28, 28, 28, 28 ) },
460+ new ST数字フォント(){ ch文字 = '7', rect = new Rectangle( 56, 28, 28, 28 ) },
461+ new ST数字フォント(){ ch文字 = '8', rect = new Rectangle( 84, 28, 28, 28 ) },
462+ new ST数字フォント(){ ch文字 = '9', rect = new Rectangle( 112, 28, 28, 28 ) },
463+ new ST数字フォント(){ ch文字 = '~', rect = new Rectangle( 0, 56, 28, 28 ) }
464+ };
465+
466+ }
467+
437468 // 2019.04.21 kairera0467
438469 private void tレベル値の描画_中( int x, int y, string strレベル値 )
439470 {
@@ -535,6 +566,45 @@ namespace DTXMania
535566 }
536567 }
537568
569+ // 2019.04.20 kairera0467
570+ /// <summary>
571+ /// BPM値を画像フォントを用いて描画する
572+ /// ※速度変化しない場合は最小、最大のどちらか片方を-1にすること。
573+ /// </summary>
574+ /// <param name="x"></param>
575+ /// <param name="y"></param>
576+ /// <param name="dbBPM最小">最小速度</param>
577+ /// <param name="dbBPM最大">最大速度</param>
578+ private void tBPM値の描画( int x, int y, double dbBPM最小, double dbBPM最大 )
579+ {
580+ if( dbBPM最小 <= 0 || dbBPM最小 > 9999 )
581+ return;
582+
583+ // 1文字あたりのマージン
584+ int n文字間隔 = 18;
585+ string formatText = string.Format( "{0,4:###0}", dbBPM最小.ToString() );
586+ if( ( dbBPM最小 != -1 && dbBPM最大 != -1 ) && ( dbBPM最小 == dbBPM最大 ) ) {
587+ formatText = string.Format( "{0,4:###0}", dbBPM最大.ToString() );
588+ x += 34;
589+ }
590+ else if( dbBPM最小 != -1 && dbBPM最大 != -1 )
591+ formatText = string.Format( "{0,4:###0}" + "~" + "{1,4:###0}", dbBPM最小.ToString(), dbBPM最大.ToString() );
592+
593+ for( int i = 0; i < formatText.Length; i++ )
594+ {
595+ char c = formatText[ i ];
596+ for( int j = 0; j < 11; j++ )
597+ {
598+ if( c.Equals( this.STBPM数字[ j ].ch文字 ) )
599+ {
600+ this.txBPM数字.t2D描画( CDTXMania.app.Device, x, y, this.STBPM数字[ j ].rect );
601+ x += n文字間隔;
602+ }
603+ }
604+ }
605+ }
606+
607+
538608 [StructLayout(LayoutKind.Sequential)]
539609 private struct ST文字位置
540610 {
--- "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"
@@ -657,7 +657,7 @@ namespace DTXMania
657657 protected CAct演奏BGA actBGA;
658658
659659 protected CAct演奏チップファイアGB actChipFireGB;
660- protected CAct演奏Combo共通 actCombo;
660+ public CAct演奏Combo共通 actCombo;
661661 protected CAct演奏Danger共通 actDANGER;
662662 protected CActFIFOBlack actFI;
663663 protected CActFIFOBlack actFO;
--- "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/GITADORA/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GD.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/GITADORA/\343\203\211\343\203\251\343\203\240\347\224\273\351\235\242/CAct\346\274\224\345\245\217Drums\343\202\271\343\203\206\343\203\274\343\202\277\343\202\271\343\203\221\343\203\215\343\203\253GD.cs"
@@ -166,6 +166,9 @@ namespace DTXMania
166166 this.txSongNamePlate = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Drums Songpanel.png" ) );
167167 this.txScore = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_score numbersGD.png" ) );
168168
169+ this.tx判定数数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Ratenumber_s.png" ) );
170+ this.tx達成率数字_整数 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Ratenumber_l.png" ) );
171+
169172 CDTXMania.t安全にDisposeする( ref bmpCardName );
170173
171174 base.OnManagedリソースの作成();
@@ -188,6 +191,9 @@ namespace DTXMania
188191 CDTXMania.tテクスチャの解放( ref this.txJacket );
189192 CDTXMania.tテクスチャの解放( ref this.txスキルパネル );
190193
194+ CDTXMania.tテクスチャの解放( ref this.tx達成率数字_整数 );
195+ CDTXMania.tテクスチャの解放( ref this.tx判定数数字 );
196+
191197 CDTXMania.tテクスチャの解放( ref this.txPlayerName );
192198
193199 base.OnManagedリソースの解放();
@@ -202,12 +208,12 @@ namespace DTXMania
202208 // return 0;
203209 if( this.b初めての進行描画 )
204210 {
205- //fX = -527;
206- //fY = 161;
207- //fZ = 0;
208- //rot = -38;
209- //fScaleX = 0.3f;
210- //fScaleY = 0.62f;
211+ fX = -465;
212+ fY = -25;
213+ fZ = 0;
214+ rot = -38;
215+ fScaleX = 0.6f;
216+ fScaleY = 1f;
211217 //offset = 0;
212218
213219 this.b初めての進行描画 = false;
@@ -220,7 +226,7 @@ namespace DTXMania
220226 if( this.txスキルパネル != null )
221227 {
222228 Matrix matSkillPanel = Matrix.Identity;
223- matSkillPanel *= Matrix.Scaling( 0.6f, 1, 1 );
229+ matSkillPanel *= Matrix.Scaling( 0.6f, 1.0f, 1 );
224230 matSkillPanel *= Matrix.RotationY( C変換.DegreeToRadian( -38 ) );
225231 matSkillPanel *= Matrix.Translation( -465, -25, 0 );
226232 this.txスキルパネル.t3D描画( CDTXMania.app.Device, matSkillPanel );
@@ -234,114 +240,178 @@ namespace DTXMania
234240 this.txPlayerName.t3D描画( CDTXMania.app.Device, matPlayerName );
235241 }
236242
237- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F1 ) )
238- //{
239- // fX--;
240- //}
241- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F2 ) )
242- //{
243- // fX++;
244- //}
245- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F3 ) )
246- //{
247- // fY--;
248- //}
249- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F4 ) )
250- //{
251- // fY++;
252- //}
253- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F6 ) )
254- //{
255- // rot--;
256- //}
257- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F7 ) )
258- //{
259- // rot++;
260- //}
261- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F8 ) )
262- //{
263- // fScaleX -= 0.01f;
264- //}
265- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F9 ) )
266- //{
267- // fScaleX += 0.01f;
268- //}
269- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F10 ) )
270- //{
271- // fScaleX -= 0.1f;
272- //}
273- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F11 ) )
274- //{
275- // fScaleX += 0.1f;
276- //}
277- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D1 ) )
278- //{
279- // fScaleY -= 0.01f;
280- //}
281- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D2 ) )
282- //{
283- // fScaleY += 0.01f;
284- //}
285- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D3 ) )
286- //{
287- // fScaleY -= 0.1f;
288- //}
289- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D4 ) )
290- //{
291- // fScaleY += 0.1f;
292- //}
293- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D5 ) )
294- //{
295- // offset--;
296- //}
297- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D6 ) )
298- //{
299- // offset++;
300- //}
301- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D7 ) )
302- //{
303- // fX -= 10;
304- //}
305- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D8 ) )
306- //{
307- // fX += 10;
308- //}
309- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D9 ) )
310- //{
311- // fY -= 10;
312- //}
313- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D0 ) )
314- //{
315- // fY += 10;
316- //}
317- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.Q ) )
318- //{
319- // fZ -= 1;
320- //}
321- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.W ) )
322- //{
323- // fZ += 1;
324- //}
325- //if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.E ) )
326- //{
327- // fZ -= 10;
328- //}
329- //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.R ) )
330- //{
331- // fZ += 10;
332- //}
243+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F1 ) )
244+ {
245+ fX--;
246+ }
247+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F2 ) )
248+ {
249+ fX++;
250+ }
251+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F3 ) )
252+ {
253+ fY--;
254+ }
255+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F4 ) )
256+ {
257+ fY++;
258+ }
259+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F6 ) )
260+ {
261+ rot--;
262+ }
263+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F7 ) )
264+ {
265+ rot++;
266+ }
267+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F8 ) )
268+ {
269+ fScaleX -= 0.01f;
270+ }
271+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F9 ) )
272+ {
273+ fScaleX += 0.01f;
274+ }
275+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F10 ) )
276+ {
277+ fScaleX -= 0.1f;
278+ }
279+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F11 ) )
280+ {
281+ fScaleX += 0.1f;
282+ }
283+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D1 ) )
284+ {
285+ fScaleY -= 0.01f;
286+ }
287+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D2 ) )
288+ {
289+ fScaleY += 0.01f;
290+ }
291+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D3 ) )
292+ {
293+ fScaleY -= 0.1f;
294+ }
295+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D4 ) )
296+ {
297+ fScaleY += 0.1f;
298+ }
299+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D5 ) )
300+ {
301+ fOffsetX--;
302+ }
303+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D6 ) )
304+ {
305+ fOffsetX++;
306+ }
307+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D7 ) )
308+ {
309+ fX -= 10;
310+ }
311+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D8 ) )
312+ {
313+ fX += 10;
314+ }
315+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D9 ) )
316+ {
317+ fY -= 10;
318+ }
319+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.D0 ) )
320+ {
321+ fY += 10;
322+ }
323+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.Q ) )
324+ {
325+ fZ -= 1;
326+ }
327+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.W ) )
328+ {
329+ fZ += 1;
330+ }
331+ if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.E ) )
332+ {
333+ fZ -= 10;
334+ }
335+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.R ) )
336+ {
337+ fZ += 10;
338+ }
339+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.T ) )
340+ {
341+ fOffsetY--;
342+ }
343+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.Y ) )
344+ {
345+ fOffsetY++;
346+ }
347+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.U ) )
348+ {
349+ fOffsetZ--;
350+ }
351+ if(CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.I ))
352+ {
353+ fOffsetZ++;
354+ }
333355
334356 #region[ ステータスパネルの文字 ]
357+ if( this.tx判定数数字 != null )
358+ {
359+ int nowtotal = CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Perfect +
360+ CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Great +
361+ CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Good +
362+ CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Poor +
363+ CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Miss;
364+
365+ //string str = nowtotal == 0 ? " 0" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Perfect / (float)nowtotal) * 100.0f );
366+ //for( int i = 0; i < 4; i++ )
367+ //{
368+ // Rectangle rectangle;
369+ // char ch = str[i];
370+ // if (ch.Equals(' '))
371+ // {
372+ // rectangle = new Rectangle(0, 0, 0, 0);
373+ // }
374+ // else if( ch.Equals('%') )
375+ // {
376+ // rectangle = new Rectangle( 200, 0, 20, 26 );
377+ // }
378+ // else
379+ // {
380+ // int num3 = int.Parse(str.Substring(i, 1));
381+ // rectangle = new Rectangle((num3 * 20), 0, 20, 26);
382+ // }
383+ // Matrix matScoreXG = Matrix.Identity;
384+ // matScoreXG *= Matrix.Scaling(0.45f, 0.8f, 1f);
385+ // matScoreXG *= Matrix.RotationY(C変換.DegreeToRadian(-40));
386+ // matScoreXG *= Matrix.Translation( -435 + (i * 6), 107, 28 + i * 6);
387+ // this.tx判定数数字.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle);
388+ //}
335389
390+ this.t判定数文字描画( -476, 107, CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Perfect );
391+ this.t判定数文字描画( -476, 77, CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Great );
392+ this.t判定数文字描画( -476, 47, CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Good );
393+ this.t判定数文字描画( -476, 17, CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Poor );
394+ this.t判定数文字描画( -476, -13, CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Miss );
395+ this.t判定数文字描画( -476, -43, CDTXMania.stage演奏ドラム画面GITADORA.actCombo.n現在のコンボ数.Drums最高値 );
396+
397+ this.t判定率文字描画( -435, 107, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Perfect / (float)nowtotal) * 100.0f ) );
398+ this.t判定率文字描画( -435, 77, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Great / (float)nowtotal) * 100.0f ) );
399+ this.t判定率文字描画( -435, 47, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Good / (float)nowtotal) * 100.0f ) );
400+ this.t判定率文字描画( -435, 17, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Poor / (float)nowtotal) * 100.0f ) );
401+ this.t判定率文字描画( -435, -13, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Miss / (float)nowtotal) * 100.0f ) );
402+ this.t判定率文字描画( -435, -43, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.actCombo.n現在のコンボ数.Drums最高値 / (float)nowtotal) * 100.0f ) );
403+ }
336404 #endregion
337405
338- //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, "RotY:" + rot.ToString() );
339- //CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.白, "PanelX:" + fX.ToString() );
340- //CDTXMania.act文字コンソール.tPrint( 0, 32, C文字コンソール.Eフォント種別.白, "PanelY:" + fY.ToString() );
341- //CDTXMania.act文字コンソール.tPrint( 0, 48, C文字コンソール.Eフォント種別.白, "ScaleX:" + fScaleX.ToString() );
342- //CDTXMania.act文字コンソール.tPrint( 0, 64, C文字コンソール.Eフォント種別.白, "ScaleY:" + fScaleY.ToString() );
343- //CDTXMania.act文字コンソール.tPrint( 0, 80, C文字コンソール.Eフォント種別.白, "OFFSET:" + offset.ToString() );
344- //CDTXMania.act文字コンソール.tPrint( 0, 96, C文字コンソール.Eフォント種別.白, "PanelZ:" + fZ.ToString() );
406+ CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, "RotY:" + rot.ToString() );
407+ CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.白, "PanelX:" + fX.ToString() );
408+ CDTXMania.act文字コンソール.tPrint( 0, 32, C文字コンソール.Eフォント種別.白, "PanelY:" + fY.ToString() );
409+ CDTXMania.act文字コンソール.tPrint( 0, 48, C文字コンソール.Eフォント種別.白, "PanelZ:" + fZ.ToString() );
410+ CDTXMania.act文字コンソール.tPrint( 0, 64, C文字コンソール.Eフォント種別.白, "ScaleX:" + fScaleX.ToString() );
411+ CDTXMania.act文字コンソール.tPrint( 0, 80, C文字コンソール.Eフォント種別.白, "ScaleY:" + fScaleY.ToString() );
412+ CDTXMania.act文字コンソール.tPrint( 0, 96, C文字コンソール.Eフォント種別.白, "OffsetX:" + fOffsetX.ToString() );
413+ CDTXMania.act文字コンソール.tPrint( 0, 112, C文字コンソール.Eフォント種別.白, "OffsetY:" + fOffsetY.ToString() );
414+ CDTXMania.act文字コンソール.tPrint( 0, 128, C文字コンソール.Eフォント種別.白, "OffsetZ:" + fOffsetZ.ToString() );
345415
346416 if ( this.txSongNamePlate != null )
347417 {
@@ -479,6 +549,8 @@ namespace DTXMania
479549 private CTexture txJacket;
480550 private CTexture txPlayerName;
481551 private CTexture txTitleName;
552+ private CTexture tx判定数数字;
553+ private CTexture tx達成率数字_整数;
482554
483555 #if DEBUG
484556 private float fX;
@@ -487,7 +559,9 @@ namespace DTXMania
487559 private int rot;
488560 private float fScaleX;
489561 private float fScaleY;
490- private int offset;
562+ private float fOffsetX;
563+ private float fOffsetY;
564+ private float fOffsetZ;
491565 #endif
492566 //-----------------
493567 private CTexture t指定された文字テクスチャを生成する( string str文字 )
@@ -509,6 +583,56 @@ namespace DTXMania
509583 return tx文字テクスチャ;
510584 }
511585
586+ private void t判定数文字描画( float x, float y, int value )
587+ {
588+ string str = string.Format("{0,4:###0}", value );
589+ for( int i = 0; i < 4; i++ )
590+ {
591+ Rectangle rectangle;
592+ char ch = str[i];
593+ if (ch.Equals(' '))
594+ {
595+ rectangle = new Rectangle(0, 0, 0, 0);
596+ }
597+ else
598+ {
599+ int num3 = int.Parse(str.Substring(i, 1));
600+ rectangle = new Rectangle((num3 * 20), 0, 20, 26);
601+ }
602+ Matrix matScoreXG = Matrix.Identity;
603+ matScoreXG *= Matrix.Scaling(0.45f, 0.8f, 1f);
604+ matScoreXG *= Matrix.RotationY(C変換.DegreeToRadian(-40));
605+ matScoreXG *= Matrix.Translation( x + (i * 6), y, i * 6);
606+ this.tx判定数数字.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle);
607+ }
608+ }
609+
610+ private void t判定率文字描画( float x, float y, string str )
611+ {
612+ for( int i = 0; i < 4; i++ )
613+ {
614+ Rectangle rectangle;
615+ char ch = str[i];
616+ if (ch.Equals(' '))
617+ {
618+ rectangle = new Rectangle(0, 0, 0, 0);
619+ }
620+ else if( ch.Equals('%') )
621+ {
622+ rectangle = new Rectangle( 200, 0, 20, 26 );
623+ }
624+ else
625+ {
626+ int num3 = int.Parse(str.Substring(i, 1));
627+ rectangle = new Rectangle((num3 * 20), 0, 20, 26);
628+ }
629+ Matrix matScoreXG = Matrix.Identity;
630+ matScoreXG *= Matrix.Scaling(0.45f, 0.8f, 1f);
631+ matScoreXG *= Matrix.RotationY(C変換.DegreeToRadian(-40));
632+ matScoreXG *= Matrix.Translation( x + (i * 6), y, 28 + i * 6);
633+ this.tx判定数数字.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle);
634+ }
635+ }
512636 #endregion
513637 }
514638 }
\ No newline at end of file
--- "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/08.\347\265\220\346\236\234/GITADORA/CActResultImageGD.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/08.\347\265\220\346\236\234/GITADORA/CActResultImageGD.cs"
@@ -8,6 +8,7 @@ using SharpDX;
88 using FDK;
99
1010 using Color = System.Drawing.Color;
11+using Rectangle = System.Drawing.Rectangle;
1112 namespace DTXMania
1213 {
1314 internal class CActResultImageGD : CActResultImage共通
@@ -61,11 +62,15 @@ namespace DTXMania
6162 CDTXMania.tテクスチャの解放( ref this.txジャケットパネル );
6263 CDTXMania.tテクスチャの解放( ref this.tx曲名パネル );
6364
64- CDTXMania.tテクスチャの解放( ref this.tx曲名 );
65- CDTXMania.tテクスチャの解放( ref this.txアーティスト名 );
66-
6765 CDTXMania.tテクスチャの解放( ref this.tx難易度 );
6866 CDTXMania.tテクスチャの解放( ref this.tx楽器パート );
67+
68+ CDTXMania.t安全にDisposeする( ref this.pfSongTitleFont );
69+ CDTXMania.t安全にDisposeする( ref this.pfSongArtistFont );
70+
71+ CDTXMania.tテクスチャの解放( ref this.tx曲名 );
72+ CDTXMania.tテクスチャの解放( ref this.txアーティスト名 );
73+
6974 base.OnManagedリソースの解放();
7075 }
7176 }
@@ -144,9 +149,10 @@ namespace DTXMania
144149 private CTexture txアーティスト名;
145150 private CTexture tx楽器パート;
146151 private CTexture tx難易度;
152+
147153 private CPrivateFastFont pfSongArtistFont;
148154 private CPrivateFastFont pfSongTitleFont;
149-
155+
150156 private CTexture t指定された文字テクスチャを生成する( string str文字 )
151157 {
152158 if( this.pfSongTitleFont == null ) return null;
--- "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/08.\347\265\220\346\236\234/GITADORA/CActResultParameterPanelGD.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/08.\347\265\220\346\236\234/GITADORA/CActResultParameterPanelGD.cs"
@@ -4,9 +4,12 @@ using System.Text;
44 using System.Runtime.InteropServices;
55 using System.Drawing;
66 using System.IO;
7-using SlimDX;
7+using SharpDX;
88 using FDK;
99
10+using Rectangle = System.Drawing.Rectangle;
11+using Point = SharpDX.Point;
12+using Size = System.Drawing.Size;
1013 namespace DTXMania
1114 {
1215 internal class CActResultParameterPanelGD : CActResultParameterPanel共通
@@ -15,7 +18,9 @@ namespace DTXMania
1518
1619 public CActResultParameterPanelGD()
1720 {
18- base.b活性化してない = true;
21+ this.tスキル数字フォント初期化();
22+ this.t達成率数字フォント初期化();
23+ base.b活性化してない = true;
1924 }
2025
2126
@@ -90,7 +95,25 @@ namespace DTXMania
9095 this.txゲージ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Gauge.png" ) );
9196 this.txゲージ2 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Gauge2.png" ) );
9297 this.txWhite = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile white 64x64.png" ) );
93- base.OnManagedリソースの作成();
98+
99+ this.txスキル数字_整数 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Skill Number Big.png" ) );
100+ this.txスキル数字_少数 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Skill Number Small.png" ) );
101+ this.txスキル数字_点 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Skill Number dot.png" ) );
102+
103+ this.tx達成率数字_整数 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Rate Number Big.png" ) );
104+ this.tx達成率数字_少数 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Rate Number Small.png" ) );
105+
106+
107+ #region[ 難易度、達成率、スキル値の下の白線の生成 ]
108+ Bitmap b白線 = new Bitmap( 340, 2 );
109+ Graphics g白線 = Graphics.FromImage( b白線 );
110+ g白線.FillRectangle( Brushes.White, 0, 0, 340, 2 );
111+
112+ this.tx白線 = CDTXMania.tテクスチャの生成( b白線, false );
113+ CDTXMania.t安全にDisposeする( ref b白線 );
114+ CDTXMania.t安全にDisposeする( ref g白線 );
115+ #endregion
116+ base.OnManagedリソースの作成();
94117 }
95118 }
96119 public override void OnManagedリソースの解放()
@@ -106,6 +129,15 @@ namespace DTXMania
106129 CDTXMania.tテクスチャの解放( ref this.txゲージ );
107130 CDTXMania.tテクスチャの解放( ref this.txゲージ2 );
108131 CDTXMania.tテクスチャの解放( ref this.txWhite );
132+
133+ CDTXMania.tテクスチャの解放( ref this.txスキル数字_整数 );
134+ CDTXMania.tテクスチャの解放( ref this.txスキル数字_少数 );
135+ CDTXMania.tテクスチャの解放( ref this.txスキル数字_点 );
136+
137+ CDTXMania.tテクスチャの解放( ref this.tx達成率数字_整数 );
138+ CDTXMania.tテクスチャの解放( ref this.tx達成率数字_少数 );
139+
140+ CDTXMania.tテクスチャの解放( ref this.tx白線 );
109141 base.OnManagedリソースの解放();
110142 }
111143 }
@@ -132,8 +164,16 @@ namespace DTXMania
132164 {
133165 if( this.n本体X[ i ] != 0 )
134166 {
135- this.t特大文字表示( 1080, 260, string.Format("{0,-6:##0.00%}", CDTXMania.stage結果.st演奏記録[ i ].db演奏型スキル値 / 100.0 ) );
136- this.t特大文字表示( 1020, 370, string.Format("{0,6:##0.00}", CDTXMania.stage結果.st演奏記録[i].dbゲーム型スキル値));
167+ this.tレベル値の描画( 1078, 159, CDTXMania.DTX.LEVEL.Drums, CDTXMania.DTX.LEVELDEC.Drums );
168+ this.tx白線?.t2D描画( CDTXMania.app.Device, 916, 215 );
169+
170+ //this.t特大文字表示( 1080, 260, string.Format("{0,-6:##0.00%}", CDTXMania.stage結果.st演奏記録[ i ].db演奏型スキル値 / 100.0 ) );
171+ this.t達成率値の描画( 1040, 232, CDTXMania.stage結果.st演奏記録[ i ].db演奏型スキル値 );
172+ this.tx白線?.t2D描画( CDTXMania.app.Device, 890, 288 );
173+
174+ //this.t特大文字表示( 1020, 370, string.Format("{0,6:##0.00}", CDTXMania.stage結果.st演奏記録[i].dbゲーム型スキル値));
175+ this.tスキル値の描画(976, 328, CDTXMania.stage結果.st演奏記録[ i ].dbゲーム型スキル値 );
176+ this.tx白線?.t2D描画( CDTXMania.app.Device, 842, 416 );
137177 }
138178 }
139179
@@ -141,48 +181,7 @@ namespace DTXMania
141181 int num5 = this.ct表示用.n現在の値 / 100;
142182 double num6 = 1.0 - (((double)(this.ct表示用.n現在の値 % 100)) / 100.0);
143183 int height = 20;
144-
145- for( int i = 0; i < 3; i++ )
146- {
147- this.n白X[i] = this.n本体X[i] + 393;
148- this.n白Y[i] = this.n本体Y[i] + 35 + (num5 * 24);
149-
150- if( this.n本体X[i] != 0 )
151- {
152- STDGBVALUE<double> n表記するLEVEL = new STDGBVALUE<double>();
153- n表記するLEVEL[i] = CDTXMania.DTX.LEVEL[i] / 10.0;
154- n表記するLEVEL[i] += (CDTXMania.DTX.LEVELDEC[i] != 0 ? CDTXMania.DTX.LEVELDEC[i] / 100.0 : 0);
155- int DTXLevel = CDTXMania.DTX.LEVEL[i];
156- double DTXLevelDeci = (DTXLevel * 10 - CDTXMania.DTX.LEVEL[i]);
157-
158- Cスコア CScore = CDTXMania.bXGRelease ? CDTXMania.stage選曲XG.r確定されたスコア : CDTXMania.stage選曲GITADORA.r確定されたスコア;
159- C曲リストノード CSongNode = CDTXMania.bXGRelease ? CDTXMania.stage選曲XG.r確定された曲 : CDTXMania.stage選曲GITADORA.r確定された曲;
160- int n表示Level = 0;
161- string n表示LevelDec = "0";
162-
163- if( CDTXMania.ConfigIni.bCLASSIC譜面判別を有効にする && CDTXMania.DTX.bCLASSIC譜面である[ i ] )
164- {
165- n表示Level = CScore.譜面情報.レベル[i];
166- }
167- else
168- {
169- n表示Level = CScore.譜面情報.レベル[ i ] / 10;
170- if( CScore.譜面情報.レベル[ i ].ToString().Length > 1 )
171- n表示LevelDec = CScore.譜面情報.レベル[ i ].ToString().Substring( 1, 1 );
172- else
173- n表示LevelDec = CScore.譜面情報.レベル[ i ].ToString();
174-
175- if( CScore.譜面情報.レベルDec[ i ] != 0 )
176- n表示LevelDec += CScore.譜面情報.レベルDec[i].ToString();
177- else
178- n表示LevelDec += "0";
179- }
180-
181- if (this.ct表示用.n現在の値 < 700)
182- {
183- }
184- }
185- }
184+
186185 //文字
187186 CDTXMania.act文字コンソール.tPrint( 877, 484, C文字コンソール.Eフォント種別.白, "PERFECT" );
188187 CDTXMania.act文字コンソール.tPrint( 877, 508, C文字コンソール.Eフォント種別.白, "GREAT" );
@@ -234,6 +233,17 @@ namespace DTXMania
234233 }
235234 }
236235
236+ private struct ST数字フォント
237+ {
238+ public char ch文字;
239+ public Rectangle rect;
240+ }
241+
242+ private ST数字フォント[] STスキル数字_整数;
243+ private ST数字フォント[] STスキル数字_少数;
244+ private ST数字フォント[] ST達成率数字_整数;
245+ private ST数字フォント[] ST達成率数字_少数;
246+
237247 private CCounter ct表示用;
238248 private STDGBVALUE<int> n本体X;
239249 private STDGBVALUE<int> n本体Y;
@@ -248,6 +258,12 @@ namespace DTXMania
248258 private CTexture txゲージ;
249259 private CTexture txゲージ2;
250260 private CTexture[] tx文字 = new CTexture[ 3 ];
261+ private CTexture txスキル数字_整数;
262+ private CTexture txスキル数字_少数;
263+ private CTexture txスキル数字_点;
264+ private CTexture tx達成率数字_整数;
265+ private CTexture tx達成率数字_少数;
266+ private CTexture tx白線;
251267
252268 private ST文字位置[] st小文字位置 = new ST文字位置[]{
253269 new ST文字位置( '0', new Point( 0, 36 ) ),
@@ -319,6 +335,64 @@ namespace DTXMania
319335 new ST文字位置( '9', new Point( 180, 0 ) ),
320336 };
321337
338+ private void tスキル数字フォント初期化()
339+ {
340+ this.STスキル数字_整数 = new ST数字フォント[] {
341+ new ST数字フォント{ ch文字 = '0', rect = new Rectangle( 0, 0, 70, 70 ) },
342+ new ST数字フォント{ ch文字 = '1', rect = new Rectangle( 70, 0, 70, 70 ) },
343+ new ST数字フォント{ ch文字 = '2', rect = new Rectangle( 140, 0, 70, 70 ) },
344+ new ST数字フォント{ ch文字 = '3', rect = new Rectangle( 210, 0, 70, 70 ) },
345+ new ST数字フォント{ ch文字 = '4', rect = new Rectangle( 280, 0, 70, 70 ) },
346+ new ST数字フォント{ ch文字 = '5', rect = new Rectangle( 0, 70, 70, 70 ) },
347+ new ST数字フォント{ ch文字 = '6', rect = new Rectangle( 70, 70, 70, 70 ) },
348+ new ST数字フォント{ ch文字 = '7', rect = new Rectangle( 140, 70, 70, 70 ) },
349+ new ST数字フォント{ ch文字 = '8', rect = new Rectangle( 210, 70, 70, 70 ) },
350+ new ST数字フォント{ ch文字 = '9', rect = new Rectangle( 280, 70, 70, 70 ) },
351+ };
352+ this.STスキル数字_少数 = new ST数字フォント[] {
353+ new ST数字フォント{ ch文字 = '0', rect = new Rectangle( 0, 0, 50, 50 ) },
354+ new ST数字フォント{ ch文字 = '1', rect = new Rectangle( 50, 0, 50, 50 ) },
355+ new ST数字フォント{ ch文字 = '2', rect = new Rectangle( 100, 0, 50, 50 ) },
356+ new ST数字フォント{ ch文字 = '3', rect = new Rectangle( 150, 0, 50, 50 ) },
357+ new ST数字フォント{ ch文字 = '4', rect = new Rectangle( 200, 0, 50, 50 ) },
358+ new ST数字フォント{ ch文字 = '5', rect = new Rectangle( 0, 50, 50, 50 ) },
359+ new ST数字フォント{ ch文字 = '6', rect = new Rectangle( 50, 50, 50, 50 ) },
360+ new ST数字フォント{ ch文字 = '7', rect = new Rectangle( 100, 50, 50, 50 ) },
361+ new ST数字フォント{ ch文字 = '8', rect = new Rectangle( 150, 50, 50, 50 ) },
362+ new ST数字フォント{ ch文字 = '9', rect = new Rectangle( 200, 50, 50, 50 ) },
363+ };
364+ }
365+
366+ private void t達成率数字フォント初期化()
367+ {
368+ this.ST達成率数字_整数 = new ST数字フォント[] {
369+ new ST数字フォント{ ch文字 = '0', rect = new Rectangle( 0, 0, 38, 50 ) },
370+ new ST数字フォント{ ch文字 = '1', rect = new Rectangle( 38, 0, 38, 50 ) },
371+ new ST数字フォント{ ch文字 = '2', rect = new Rectangle( 76, 0, 38, 50 ) },
372+ new ST数字フォント{ ch文字 = '3', rect = new Rectangle( 114, 0, 38, 50 ) },
373+ new ST数字フォント{ ch文字 = '4', rect = new Rectangle( 152, 0, 38, 50 ) },
374+ new ST数字フォント{ ch文字 = '5', rect = new Rectangle( 0, 50, 38, 50 ) },
375+ new ST数字フォント{ ch文字 = '6', rect = new Rectangle( 38, 50, 38, 50 ) },
376+ new ST数字フォント{ ch文字 = '7', rect = new Rectangle( 76, 50, 38, 50 ) },
377+ new ST数字フォント{ ch文字 = '8', rect = new Rectangle( 114, 50, 38, 50 ) },
378+ new ST数字フォント{ ch文字 = '9', rect = new Rectangle( 152, 50, 38, 50 ) }
379+ };
380+ this.ST達成率数字_少数 = new ST数字フォント[] {
381+ new ST数字フォント{ ch文字 = '0', rect = new Rectangle( 0, 0, 32, 42 ) },
382+ new ST数字フォント{ ch文字 = '1', rect = new Rectangle( 32, 0, 32, 42 ) },
383+ new ST数字フォント{ ch文字 = '2', rect = new Rectangle( 64, 0, 32, 42 ) },
384+ new ST数字フォント{ ch文字 = '3', rect = new Rectangle( 96, 0, 32, 42 ) },
385+ new ST数字フォント{ ch文字 = '4', rect = new Rectangle( 128, 0, 32, 42 ) },
386+ new ST数字フォント{ ch文字 = '5', rect = new Rectangle( 0, 42, 32, 42 ) },
387+ new ST数字フォント{ ch文字 = '6', rect = new Rectangle( 32, 42, 32, 42 ) },
388+ new ST数字フォント{ ch文字 = '7', rect = new Rectangle( 64, 42, 32, 42 ) },
389+ new ST数字フォント{ ch文字 = '8', rect = new Rectangle( 96, 42, 32, 42 ) },
390+ new ST数字フォント{ ch文字 = '9', rect = new Rectangle( 128, 42, 32, 42 ) },
391+ new ST数字フォント{ ch文字 = '%', rect = new Rectangle( 0, 84, 42, 42 ) },
392+ new ST数字フォント{ ch文字 = '.', rect = new Rectangle( 42, 84, 32, 42 ) }
393+ };
394+ }
395+
322396 private void t小文字表示( int x, int y, string str )
323397 {
324398 this.t小文字表示( x, y, str, false );
@@ -470,6 +544,154 @@ namespace DTXMania
470544 x += 16;
471545 }
472546 }
547+ private void tスキル値の描画( int x, int y, double dbスキル値 )
548+ {
549+ if( dbスキル値 <= 0 || dbスキル値 > 200 )
550+ return;
551+
552+ // 1文字あたりのマージン
553+ int n文字間隔_整数部 = 46;
554+ int n文字間隔_小数部 = 32;
555+ bool b整数部処理中 = true;
556+ dbスキル値 = dbスキル値 * 100.0;
557+ dbスキル値 = Math.Floor( dbスキル値 );
558+ dbスキル値 = dbスキル値 / 100.0;
559+ string formatText = string.Format( "{0,6:000.00}", dbスキル値.ToString() );
560+
561+ for( int i = 0; i < formatText.Length; i++ )
562+ {
563+ char c = formatText[ i ];
564+
565+ if( c.Equals( '.' ) )
566+ {
567+ // 小数点だったら小数点を描画してフラグ切り替えてcontinue
568+ this.txスキル数字_点.t2D描画( CDTXMania.app.Device, x - 14, y );
569+ b整数部処理中 = false;
570+ x += 18;
571+ continue;
572+ }
573+ else if( c.Equals( ' ' ) )
574+ {
575+ // 空白ならなにもせずcontinue
576+ continue;
577+ }
578+
579+ for( int j = 0; j < 10; j++ )
580+ {
581+ if( c.Equals( this.STスキル数字_整数[ j ].ch文字 ) )
582+ {
583+ if( b整数部処理中 )
584+ {
585+ this.txスキル数字_整数.t2D描画( CDTXMania.app.Device, x, y, this.STスキル数字_整数[ j ].rect );
586+ x += n文字間隔_整数部;
587+ }
588+ else
589+ {
590+ this.txスキル数字_少数.t2D描画( CDTXMania.app.Device, x, y + 20, this.STスキル数字_少数[ j ].rect );
591+ x += n文字間隔_小数部;
592+ }
593+ }
594+ }
595+ }
596+ }
597+
598+ private void t達成率値の描画( int x, int y, double dbスキル値 )
599+ {
600+ // 1文字あたりのマージン
601+ int n文字間隔_整数部 = 38;
602+ int n文字間隔_小数部 = 30;
603+ bool b整数部処理中 = true;
604+ string formatText = string.Format( "{0,5:00.00}%", dbスキル値.ToString() );
605+
606+ for( int i = 0; i < formatText.Length; i++ )
607+ {
608+ char c = formatText[ i ];
609+
610+ if( c.Equals( '.' ) )
611+ {
612+ // 小数点だったら小数点を描画してフラグ切り替えてcontinue
613+ this.tx達成率数字_少数?.t2D描画( CDTXMania.app.Device, x - 12, y + 8, this.ST達成率数字_少数[ 11 ].rect );
614+ b整数部処理中 = false;
615+ x += 8;
616+ continue;
617+ }
618+ else if( c.Equals( '%' ) )
619+ {
620+ this.tx達成率数字_少数?.t2D描画( CDTXMania.app.Device, x, y + 8, this.ST達成率数字_少数[ 10 ].rect );
621+ continue;
622+ }
623+ else if( c.Equals( ' ' ) )
624+ {
625+ // 空白ならなにもせずcontinue
626+ continue;
627+ }
628+
629+ for( int j = 0; j < 10; j++ )
630+ {
631+ if( c.Equals( this.ST達成率数字_整数[ j ].ch文字 ) )
632+ {
633+ if( b整数部処理中 )
634+ {
635+ this.tx達成率数字_整数?.t2D描画( CDTXMania.app.Device, x, y, this.ST達成率数字_整数[ j ].rect );
636+ x += n文字間隔_整数部;
637+ }
638+ else
639+ {
640+ this.tx達成率数字_少数?.t2D描画( CDTXMania.app.Device, x, y + 9, this.ST達成率数字_少数[ j ].rect );
641+ x += n文字間隔_小数部;
642+ }
643+ }
644+ }
645+ }
646+ }
647+
648+ private void tレベル値の描画( int x, int y, int nレベル, int nレベルDec )
649+ {
650+ // 1文字あたりのマージン
651+ int n文字間隔_整数部 = 38;
652+ int n文字間隔_小数部 = 30;
653+ bool b整数部処理中 = true;
654+ decimal decLevel = 0.00M;
655+ decLevel += nレベル / 10.0M;
656+ decLevel += nレベルDec / 100.0M;
657+ string formatText = string.Format( "{0,4:0.00}", decLevel.ToString() );
658+
659+ for( int i = 0; i < formatText.Length; i++ )
660+ {
661+ char c = formatText[ i ];
662+
663+ if( c.Equals( '.' ) )
664+ {
665+ // 小数点だったら小数点を描画してフラグ切り替えてcontinue
666+ this.tx達成率数字_少数?.t2D描画( CDTXMania.app.Device, x - 12, y + 8, this.ST達成率数字_少数[ 11 ].rect );
667+ b整数部処理中 = false;
668+ x += 8;
669+ continue;
670+ }
671+ else if( c.Equals( ' ' ) )
672+ {
673+ // 空白ならなにもせずcontinue
674+ continue;
675+ }
676+
677+ for( int j = 0; j < 10; j++ )
678+ {
679+ if( c.Equals( this.ST達成率数字_整数[ j ].ch文字 ) )
680+ {
681+ if( b整数部処理中 )
682+ {
683+ this.tx達成率数字_整数?.t2D描画( CDTXMania.app.Device, x, y, this.ST達成率数字_整数[ j ].rect );
684+ x += n文字間隔_整数部;
685+ }
686+ else
687+ {
688+ this.tx達成率数字_少数?.t2D描画( CDTXMania.app.Device, x, y + 9, this.ST達成率数字_少数[ j ].rect );
689+ x += n文字間隔_小数部;
690+ }
691+ }
692+ }
693+ }
694+ }
473695 //-----------------
474696 #endregion
475697 }
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
Binary files /dev/null and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/5_BPM Number.png" differ
Binary files /dev/null and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/7_Ratenumber_l.png" differ
Binary files /dev/null and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/7_Ratenumber_s.png" differ
Binary files /dev/null and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Rate Number Big.png" differ
Binary files /dev/null and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Rate Number Small.png" differ
Binary files /dev/null and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Skill Number Big.png" differ
Binary files /dev/null and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Skill Number Small.png" differ
Binary files /dev/null and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/System/DefaultMat/Graphics/8_Skill Number dot.png" differ
Binary files "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll" and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll" differ