OSDN Git Service

#24074 最高スキルとの比較ができる達成率グラフを仮実装。
authorikanick <ikanick@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 11 Jan 2011 13:11:22 +0000 (13:11 +0000)
committerikanick <ikanick@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 11 Jan 2011 13:11:22 +0000 (13:11 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@69 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/DTXManiaプロジェクト.csproj
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsグラフ.cs [new file with mode: 0644]
DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CStage演奏ドラム画面.cs
DTXManiaプロジェクト/コード/全体/CConfigIni.cs
実行時フォルダ/System/Graphics/Z_GraphTest.png [new file with mode: 0644]

index 4967fb8..fb4c202 100644 (file)
     <Compile Include="コード\ステージ\07.演奏\ドラム画面\CAct演奏DrumsDanger.cs" />\r
     <Compile Include="コード\ステージ\07.演奏\ドラム画面\CAct演奏DrumsRGB.cs" />\r
     <Compile Include="コード\ステージ\07.演奏\ドラム画面\CAct演奏DrumsWailingBonus.cs" />\r
+    <Compile Include="コード\ステージ\07.演奏\ドラム画面\CAct演奏Drumsグラフ.cs" />\r
     <Compile Include="コード\ステージ\07.演奏\ドラム画面\CAct演奏Drumsゲージ.cs" />\r
     <Compile Include="コード\ステージ\07.演奏\ドラム画面\CAct演奏DrumsコンボDGB.cs" />\r
     <Compile Include="コード\ステージ\07.演奏\ドラム画面\CAct演奏Drumsスコア.cs" />\r
index ec5e5e0..3bdacae 100644 (file)
@@ -382,6 +382,10 @@ namespace DTXMania
                                "BGAの使用:\n画像(BGA)を表示可能にする場合に\nON にします。BGA の再生には、それ\nなりのマシンパワーが必要とされます。",\r
                                "To draw BGA (back ground animations)\n or not.");\r
                        this.list項目リスト.Add( this.iSystemBGA );\r
+                       this.iSystemGraph = new CItemToggle( "Graph", CDTXMania.ConfigIni.bGraph有効,\r
+                               "達成率グラフの使用:\n最高スキル達成率と比較できるグラフ\nを表示する場合にON にします。\n現バージョンではドラムのみとなって\nいます。",\r
+                               "To draw Graph \n or not.");\r
+                       this.list項目リスト.Add( this.iSystemGraph );\r
                        this.iSystemFillIn = new CItemToggle( "FillIn", CDTXMania.ConfigIni.bフィルイン有効,\r
                                "フィルインエフェクトの使用:\nフィルイン区間の爆発パターンに特別\nのエフェクトを使用します。\nフィルインエフェクトの描画にはそれな\nりのマシンパワーが必要とされます。",\r
                                "To show bursting effects at the fill-in\n zone or not.");\r
@@ -770,6 +774,7 @@ namespace DTXMania
                private CItemInteger iSystemAutoChipVolume;\r
                private CItemToggle iSystemAVI;\r
                private CItemToggle iSystemBGA;\r
+               private CItemToggle iSystemGraph;\r
                private CItemInteger iSystemBGAlpha;\r
                private CItemToggle iSystemBGMSound;\r
                private CItemInteger iSystemChipVolume;\r
@@ -875,6 +880,7 @@ namespace DTXMania
                        CDTXMania.ConfigIni.bバッファ入力を行う = this.iSystemBufferedInput.bON;\r
                        CDTXMania.ConfigIni.bAVI有効 = this.iSystemAVI.bON;\r
                        CDTXMania.ConfigIni.bBGA有効 = this.iSystemBGA.bON;\r
+                       CDTXMania.ConfigIni.bGraph有効 = this.iSystemGraph.bON;\r
                        CDTXMania.ConfigIni.bフィルイン有効 = this.iSystemFillIn.bON;\r
                        CDTXMania.ConfigIni.b演奏音を強調する.Drums = this.iSystemSoundMonitorDrums.bON;\r
                        CDTXMania.ConfigIni.b演奏音を強調する.Guitar = this.iSystemSoundMonitorGuitar.bON;\r
diff --git a/DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsグラフ.cs b/DTXManiaプロジェクト/コード/ステージ/07.演奏/ドラム画面/CAct演奏Drumsグラフ.cs
new file mode 100644 (file)
index 0000000..8c70b4a
--- /dev/null
@@ -0,0 +1,139 @@
+using System;\r
+using System.Collections.Generic;\r
+using System.Text;\r
+using System.Runtime.InteropServices;\r
+using System.Drawing;\r
+using SlimDX;\r
+using FDK;\r
+\r
+namespace DTXMania\r
+{\r
+       internal class CAct演奏Drumsグラフ : CActivity\r
+       {\r
+               // プロパティ\r
+\r
+        public double dbグラフ値\r
+        {\r
+            get\r
+            {\r
+                return this.dbグラフ値現在;\r
+            }\r
+            set\r
+            {\r
+                this.dbグラフ値現在 = value;\r
+            }\r
+        }\r
+        public double dbグラフ値2\r
+        {\r
+            get\r
+            {\r
+                return this.dbグラフ値目標;\r
+            }\r
+            set\r
+            {\r
+                this.dbグラフ値目標 = value;\r
+            }\r
+        }\r
+               \r
+               // コンストラクタ\r
+\r
+               public CAct演奏Drumsグラフ()\r
+               {\r
+                       base.b活性化してない = true;\r
+               }\r
+\r
+\r
+               // CActivity 実装\r
+\r
+               public override void On活性化()\r
+        {\r
+            this.dbグラフ値目標 = 80f;\r
+            this.dbグラフ値現在 = 0f;\r
+                       base.On活性化();\r
+               }\r
+               public override void On非活性化()\r
+               {\r
+                       base.On非活性化();\r
+               }\r
+               public override void OnManagedリソースの作成()\r
+               {\r
+                       if( !base.b活性化してない )\r
+                       {\r
+                this.txグラフ = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Z_GraphTest.png"));\r
+                               base.OnManagedリソースの作成();\r
+                       }\r
+               }\r
+               public override void OnManagedリソースの解放()\r
+               {\r
+                       if( !base.b活性化してない )\r
+                       {\r
+                               CDTXMania.tテクスチャの解放( ref this.txグラフ );\r
+                               base.OnManagedリソースの解放();\r
+                       }\r
+               }\r
+               public override int On進行描画()\r
+               {\r
+                       if( !base.b活性化してない )\r
+                       {\r
+                               if( base.b初めての進行描画 )\r
+                               {\r
+                                       base.b初めての進行描画 = false;\r
+                }\r
+                // 背景暗幕\r
+                if (this.txグラフ != null)\r
+                {\r
+                    this.txグラフ.n透明度 = 128;\r
+                    this.txグラフ.vc拡大縮小倍率 = new Vector3(38f, 230f, 1f);\r
+                }\r
+                Rectangle rectangle = new Rectangle(22, 0, 1, 1);\r
+                this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88, rectangle);\r
+                \r
+                // 基準線\r
+                if (this.txグラフ != null)\r
+                {\r
+                    this.txグラフ.n透明度 = 192;\r
+                    this.txグラフ.vc拡大縮小倍率 = new Vector3(38f, 1f, 1f);\r
+                }\r
+                for (int i = 0; i < 4; i++)\r
+                {\r
+                    // 基準線を越えたら黄色くなる\r
+                    if (this.dbグラフ値現在 >= (100 - i * 10))\r
+                    {\r
+                        rectangle = new Rectangle(21, 0, 1, 1);\r
+                    }\r
+                    else\r
+                    {\r
+                        rectangle = new Rectangle(20, 0, 1, 1);\r
+                    }\r
+                    this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88+i*23, rectangle);\r
+                }\r
+\r
+                // グラフ\r
+                if (this.txグラフ != null)\r
+                {\r
+                    this.txグラフ.n透明度 = 192;\r
+                    this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
+                }\r
+                // --現在値\r
+                rectangle = new Rectangle(0, 0, 10, (int)(230f * this.dbグラフ値現在 / 100));\r
+                this.txグラフ.t2D描画(CDTXMania.app.Device, 350, 318 - (int)(230f * this.dbグラフ値現在 / 100), rectangle);\r
+                // --目標値\r
+                rectangle = new Rectangle(10, 0, 10, (int)(230f * this.dbグラフ値目標 / 100));\r
+                this.txグラフ.t2D描画(CDTXMania.app.Device, 368, 318 - (int)(230f * this.dbグラフ値目標 / 100), rectangle);\r
+                \r
+                       }\r
+                       return 0;\r
+               }\r
+\r
+\r
+               // その他\r
+\r
+               #region [ private ]\r
+               //----------------\r
+        private double dbグラフ値目標;\r
+        private double dbグラフ値現在;\r
+               private CTexture txグラフ;\r
+               //-----------------\r
+               #endregion\r
+       }\r
+}\r
index e5e4317..a017975 100644 (file)
@@ -48,8 +48,9 @@ namespace DTXMania
                        base.list子Activities.Add( this.actCOMBO = new CAct演奏DrumsコンボDGB() );\r
                        base.list子Activities.Add( this.actDANGER = new CAct演奏DrumsDanger() );\r
                        base.list子Activities.Add( this.actChipFireD = new CAct演奏DrumsチップファイアD() );\r
-                       base.list子Activities.Add( this.actChipFireGB = new CAct演奏DrumsチップファイアGB() );\r
-                       base.list子Activities.Add( this.actGauge = new CAct演奏Drumsゲージ() );\r
+            base.list子Activities.Add( this.actChipFireGB = new CAct演奏DrumsチップファイアGB());\r
+            base.list子Activities.Add( this.actGauge = new CAct演奏Drumsゲージ() );\r
+            base.list子Activities.Add( this.actGraph = new CAct演奏Drumsグラフ() );\r
                        base.list子Activities.Add( this.actJudgeString = new CAct演奏Drums判定文字列() );\r
                        base.list子Activities.Add( this.actLaneFlushD = new CAct演奏DrumsレーンフラッシュD() );\r
                        base.list子Activities.Add( this.actLaneFlushGB = new CAct演奏DrumsレーンフラッシュGB() );\r
@@ -295,6 +296,9 @@ namespace DTXMania
                        this.nInputAdjustTimeMs.Drums = CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums;           // #23580 2011.1.3 yyagi\r
                        this.nInputAdjustTimeMs.Guitar = CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar;         //        2011.1.7 ikanick 修正\r
                        this.nInputAdjustTimeMs.Bass = CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass;                     //\r
+\r
+            Cスコア cスコア = CDTXMania.stage選曲.r確定されたスコア;\r
+            this.actGraph.dbグラフ値2 = cスコア.譜面情報.最大スキル[0];\r
                }\r
                public override void On非活性化()\r
                {\r
@@ -372,8 +376,9 @@ namespace DTXMania
                                this.t進行描画・ステータスパネル();\r
                                this.t進行描画・ギターベースフレーム();\r
                                this.t進行描画・レーンフラッシュGB();\r
-                               this.t進行描画・ギターベース判定ライン();\r
-                               this.t進行描画・ゲージ();\r
+                this.t進行描画・ギターベース判定ライン();\r
+                this.t進行描画・ゲージ();\r
+                this.t進行描画・グラフ();\r
                                this.t進行描画・レーンフラッシュD();\r
                                this.t進行描画・DANGER();\r
                                this.t進行描画・判定ライン();\r
@@ -586,8 +591,9 @@ namespace DTXMania
                private CAct演奏DrumsDanger actDANGER;\r
                private CActFIFOBlack actFI;\r
                private CActFIFOBlack actFO;\r
-               private CActFIFOWhite actFOClear;\r
-               private CAct演奏Drumsゲージ actGauge;\r
+        private CActFIFOWhite actFOClear;\r
+        private CAct演奏Drumsゲージ actGauge;\r
+               private CAct演奏Drumsグラフ actGraph;\r
                private CAct演奏Drums判定文字列 actJudgeString;\r
                private CAct演奏DrumsレーンフラッシュD actLaneFlushD;\r
                private CAct演奏DrumsレーンフラッシュGB actLaneFlushGB;\r
@@ -1297,6 +1303,7 @@ namespace DTXMania
                                }\r
                                this.actScore.Set( pChip.e楽器パート, nScore );\r
                        }\r
+            this.actGraph.dbグラフ値 = CScoreIni.t演奏型スキルを計算して返す(CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数・Auto含まない.Drums.Perfect, this.nヒット数・Auto含まない.Drums.Great, this.nヒット数・Auto含まない.Drums.Good, this.nヒット数・Auto含まない.Drums.Poor, this.nヒット数・Auto含まない.Drums.Miss);\r
                        return eJudgeResult;\r
                }\r
                private void tチップのヒット処理・BadならびにTight時のMiss( E楽器パート part )\r
@@ -1595,7 +1602,14 @@ namespace DTXMania
                        {\r
                                this.actGauge.On進行描画();\r
                        }\r
-               }\r
+        }\r
+        private void t進行描画・グラフ()\r
+        {\r
+            if (!CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bGraph有効)\r
+            {\r
+                this.actGraph.On進行描画();\r
+            }\r
+        }\r
                private void t進行描画・コンボ()\r
                {\r
                        this.actCOMBO.On進行描画();\r
@@ -4230,7 +4244,7 @@ namespace DTXMania
                        double fDamage;\r
 \r
 #if true       // DAMAGELEVELTUNING\r
-                       switch (e今回の判定)                                               // #23625 2011.1.10 ickw_284\r
+                       switch (e今回の判定)\r
                        {\r
                                case E判定.Perfect:\r
                                case E判定.Great:\r
@@ -4300,7 +4314,7 @@ namespace DTXMania
 \r
                        if( this.actGauge.db現在のゲージ値 > 1.0 )\r
                                this.actGauge.db現在のゲージ値 = 1.0;\r
-               }\r
+        }\r
                //-----------------\r
                #endregion\r
        }\r
index 1f40d50..85e2e24 100644 (file)
@@ -372,6 +372,7 @@ namespace DTXMania
                public int nBGAlpha;\r
                public bool bAVI有効;\r
                public bool bBGA有効;\r
+               public bool bGraph有効;\r
                public bool bBGM音を発声する;\r
                public STDGBVALUE<bool> bHidden;\r
                public STDGBVALUE<bool> bLeft;\r
diff --git a/実行時フォルダ/System/Graphics/Z_GraphTest.png b/実行時フォルダ/System/Graphics/Z_GraphTest.png
new file mode 100644 (file)
index 0000000..fee9be5
Binary files /dev/null and b/実行時フォルダ/System/Graphics/Z_GraphTest.png differ