OSDN Git Service

#36057 コンフィグまわりのリファクタ(リソース不完全なので注意)
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / ドラム画面 / CAct演奏DrumsレーンフラッシュD.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Runtime.InteropServices;\r
5 using System.Drawing;\r
6 using FDK;\r
7 \r
8 namespace DTXMania\r
9 {\r
10         internal class CAct演奏DrumsレーンフラッシュD : CActivity\r
11         {\r
12                 static ELane[] lanes = new ELane[] { ELane.LC, ELane.HH, ELane.SD, ELane.BD, ELane.HT, ELane.LT, ELane.FT, ELane.CY };\r
13                 CCounter[] ct進行 = new CCounter[8];\r
14                 CTexture tx = new CTexture();\r
15 \r
16                 // コンストラクタ\r
17                 public CAct演奏DrumsレーンフラッシュD()\r
18                 {\r
19                         base.b活性化してない = true;\r
20                 }\r
21 \r
22 \r
23                 // メソッド\r
24                 public void Start(ELane lane, float f強弱度合い)\r
25                 {\r
26                         int num = (int)((1f - f強弱度合い) * 55f);\r
27                         this.ct進行[(int)lane] = new CCounter(num, 100, 4, CDTXMania.Instance.Timer);\r
28                 }\r
29 \r
30 \r
31                 // CActivity 実装\r
32                 public override void On活性化()\r
33                 {\r
34                         for (int i = 0; i < 8; i++)\r
35                         {\r
36                                 this.ct進行[i] = new CCounter();\r
37                         }\r
38                         base.On活性化();\r
39                 }\r
40 \r
41                 public override void On非活性化()\r
42                 {\r
43                         for (int i = 0; i < 8; i++)\r
44                         {\r
45                                 this.ct進行[i] = null;\r
46                         }\r
47                         base.On非活性化();\r
48                 }\r
49 \r
50                 public override void OnManagedリソースの作成()\r
51                 {\r
52                         if (!base.b活性化してない)\r
53                         {\r
54                                 tx = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay drums lane flush.png"));\r
55                                 base.OnManagedリソースの作成();\r
56                         }\r
57                 }\r
58 \r
59                 public override void OnManagedリソースの解放()\r
60                 {\r
61                         if (!base.b活性化してない)\r
62                         {\r
63                                 TextureFactory.tテクスチャの解放(ref tx);\r
64                                 base.OnManagedリソースの解放();\r
65                         }\r
66                 }\r
67 \r
68                 public override int On進行描画()\r
69                 {\r
70                         if (b活性化してる &&\r
71                                 CDTXMania.Instance.ConfigIni.bDrums有効 &&\r
72                                 CDTXMania.Instance.DTX.bチップがある.Drums &&\r
73                                 CDTXMania.Instance.ConfigIni.eDark == EDark.Off)\r
74                         {\r
75                                 for (int i = 0; i < 8; i++)\r
76                                 {\r
77                                         if (!this.ct進行[i].b停止中)\r
78                                         {\r
79                                                 this.ct進行[i].t進行();\r
80                                                 if (this.ct進行[i].b終了値に達した)\r
81                                                 {\r
82                                                         this.ct進行[i].t停止();\r
83                                                 }\r
84                                         }\r
85                                 }\r
86 \r
87                                 int imgX = CDTXMania.Instance.Coordinates.ImgDrLaneFlash.X;\r
88                                 for (int i = 0; i < 8; i++)\r
89                                 {\r
90                                         int x = CDTXMania.Instance.ConfigIni.GetLaneX(lanes[i]);\r
91                                         int w = CDTXMania.Instance.ConfigIni.GetLaneW(lanes[i]);\r
92                                         if (!this.ct進行[i].b停止中)\r
93                                         {\r
94                                                 if (tx != null)\r
95                                                 {\r
96                                                         if (CDTXMania.Instance.ConfigIni.bReverse.Drums)\r
97                                                         {\r
98                                                                 tx.vc拡大縮小倍率.Y = -1;\r
99                                                         }\r
100                                                         else\r
101                                                         {\r
102                                                                 tx.vc拡大縮小倍率.Y = 1;\r
103                                                         }\r
104                                                         int y = CDTXMania.Instance.ConfigIni.bReverse.Drums ? 0 : CDTXMania.Instance.Coordinates.LaneFlash.Drums.Y;\r
105                                                         y += (CDTXMania.Instance.ConfigIni.bReverse.Drums ? -1 : 1) * (int)(CDTXMania.Instance.Coordinates.ImgDrLaneFlash.H * ((ct進行[i].n現在の値) / 100.0));\r
106 \r
107                                                         tx.t2D描画(\r
108                                                                 CDTXMania.Instance.Device,\r
109                                                                 x,\r
110                                                                 y,\r
111                                                                 new Rectangle(\r
112                                                                         imgX,\r
113                                                                         CDTXMania.Instance.Coordinates.ImgDrLaneFlash.Y,\r
114                                                                         w,\r
115                                                                         (int)(CDTXMania.Instance.Coordinates.ImgDrLaneFlash.H * tx.vc拡大縮小倍率.Y)\r
116                                                                 )\r
117                                                         );\r
118                                                 }\r
119                                         }\r
120 \r
121                                         imgX += w;\r
122                                 }\r
123                         }\r
124                         return 0;\r
125                 }\r
126         }\r
127 }