OSDN Git Service

fd8b6034b89cc77fee61f2a8f03d04e312e33001
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / CAct演奏RGB共通.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using FDK;\r
5 using System.Drawing;\r
6 \r
7 namespace DTXMania\r
8 {\r
9         internal class CAct演奏RGB共通 : CActivity\r
10         {\r
11                 // プロパティ\r
12                 protected bool[] b押下状態 = new bool[6];\r
13                 protected CTexture txRGB;\r
14 \r
15 \r
16                 // コンストラクタ\r
17 \r
18                 public CAct演奏RGB共通()\r
19                 {\r
20                         base.b活性化してない = true;\r
21                 }\r
22 \r
23                 // メソッド\r
24                 public void Push(int nLane)\r
25                 {\r
26                         this.b押下状態[nLane] = true;\r
27                 }\r
28 \r
29 \r
30                 // CActivity 実装\r
31                 public override void On活性化()\r
32                 {\r
33                         for (int i = 0; i < 6; i++)\r
34                         {\r
35                                 this.b押下状態[i] = false;\r
36                         }\r
37                         base.On活性化();\r
38                 }\r
39                 public override void OnManagedリソースの作成()\r
40                 {\r
41                         if (!base.b活性化してない)\r
42                         {\r
43                                 this.txRGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay RGB buttons.png"));\r
44                                 base.OnManagedリソースの作成();\r
45                         }\r
46                 }\r
47                 public override void OnManagedリソースの解放()\r
48                 {\r
49                         if (!base.b活性化してない)\r
50                         {\r
51                                 TextureFactory.tテクスチャの解放(ref this.txRGB);\r
52                                 base.OnManagedリソースの解放();\r
53                         }\r
54                 }\r
55 \r
56                 public override int On進行描画()\r
57                 {\r
58                         if (!base.b活性化してない && CDTXMania.Instance.ConfigIni.bGuitar有効)\r
59                         {\r
60                                 for (int i = 0; i < 6; i++)\r
61                                 {\r
62                                         E楽器パート inst = i < 3 ? E楽器パート.GUITAR : E楽器パート.BASS;\r
63                                         if (CDTXMania.Instance.DTX.bチップがある[(int)inst])\r
64                                         {\r
65                                                 int x = 0;\r
66                                                 Rectangle rc;\r
67 \r
68                                                 if (i == 0)\r
69                                                 {\r
70                                                         x = CDTXMania.Instance.Coordinates.Lane.GtR.X;\r
71                                                         rc = b押下状態[i] ? CDTXMania.Instance.Coordinates.ImgGtPressingButtonR : CDTXMania.Instance.Coordinates.ImgGtButtonR;\r
72                                                 }\r
73                                                 else if (i == 1)\r
74                                                 {\r
75                                                         x = CDTXMania.Instance.Coordinates.Lane.GtG.X;\r
76                                                         rc = b押下状態[i] ? CDTXMania.Instance.Coordinates.ImgGtPressingButtonG : CDTXMania.Instance.Coordinates.ImgGtButtonG;\r
77                                                 }\r
78                                                 else if (i == 2)\r
79                                                 {\r
80                                                         x = CDTXMania.Instance.Coordinates.Lane.GtB.X;\r
81                                                         rc = b押下状態[i] ? CDTXMania.Instance.Coordinates.ImgGtPressingButtonB : CDTXMania.Instance.Coordinates.ImgGtButtonB;\r
82                                                 }\r
83                                                 else if (i == 3)\r
84                                                 {\r
85                                                         x = CDTXMania.Instance.Coordinates.Lane.BsR.X;\r
86                                                         rc = b押下状態[i] ? CDTXMania.Instance.Coordinates.ImgGtPressingButtonR : CDTXMania.Instance.Coordinates.ImgGtButtonR;\r
87                                                 }\r
88                                                 else if (i == 4)\r
89                                                 {\r
90                                                         x = CDTXMania.Instance.Coordinates.Lane.BsG.X;\r
91                                                         rc = b押下状態[i] ? CDTXMania.Instance.Coordinates.ImgGtPressingButtonG : CDTXMania.Instance.Coordinates.ImgGtButtonG;\r
92                                                 }\r
93                                                 else if (i == 5)\r
94                                                 {\r
95                                                         x = CDTXMania.Instance.Coordinates.Lane.BsB.X;\r
96                                                         rc = b押下状態[i] ? CDTXMania.Instance.Coordinates.ImgGtPressingButtonB : CDTXMania.Instance.Coordinates.ImgGtButtonB;\r
97                                                 }\r
98                                                 else\r
99                                                 {\r
100                                                         rc = new Rectangle();\r
101                                                 }\r
102 \r
103                                                 if (txRGB != null)\r
104                                                 {\r
105                                                         int y = C演奏判定ライン座標共通.n演奏RGBボタンY座標(inst);\r
106                                                         if( CDTXMania.Instance.ConfigIni.bReverse[inst] )\r
107                                                         {\r
108                                                                 y -= rc.Height/2;\r
109                                                         }\r
110                                                         txRGB.t2D描画(CDTXMania.Instance.Device, x, y, rc);\r
111                                                 }\r
112                                         }\r
113                                 }\r
114                                 for(int i = 0; i < 6; ++i)\r
115                                 {\r
116                                         b押下状態[i] = false;\r
117                                 }\r
118                         }\r
119 \r
120                         return 0;\r
121                 }\r
122         }\r
123 }\r