OSDN Git Service

#36057 コンフィグまわりのリファクタ(リソース不完全なので注意)
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / CAct演奏Danger共通.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Drawing;\r
5 using FDK;\r
6 using SlimDX;\r
7 \r
8 namespace DTXMania\r
9 {\r
10         internal class CAct演奏Danger共通 : CActivity\r
11         {\r
12                 private CTextureAf txDANGER;\r
13                 private bool bDanger中;\r
14                 // = { false, false, false };\r
15                 private CCounter ct移動用;\r
16                 private CCounter ct透明度用;\r
17                 private const int n波長 = 40;\r
18                 private const int n透明度MAX = 180;\r
19                 private const int n透明度MIN = 20;\r
20 \r
21                 public override void On活性化()\r
22                 {\r
23                         if (b活性化してない)\r
24                         {\r
25                                 bDanger中 = false;\r
26                                 ct移動用 = null;\r
27                                 ct透明度用 = null;\r
28                                 base.On活性化();\r
29                         }\r
30                 }\r
31 \r
32                 public override void On非活性化()\r
33                 {\r
34                         if (b活性化してる)\r
35                         {\r
36                                 this.ct移動用 = null;\r
37                                 this.ct透明度用 = null;\r
38                                 base.On非活性化();\r
39                         }\r
40                 }\r
41 \r
42                 public override void OnManagedリソースの作成()\r
43                 {\r
44                         if (b活性化してる)\r
45                         {\r
46                                 this.txDANGER = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenPlayDrums danger.png"), false);\r
47                                 base.OnManagedリソースの作成();\r
48                         }\r
49                 }\r
50 \r
51                 public override void OnManagedリソースの解放()\r
52                 {\r
53                         if (b活性化してる)\r
54                         {\r
55                                 TextureFactory.tテクスチャの解放(ref this.txDANGER);\r
56                                 base.OnManagedリソースの解放();\r
57                         }\r
58                 }\r
59 \r
60                 /// <summary>\r
61                 /// DANGER描画\r
62                 /// </summary>\r
63                 /// <param name="bIsDangerDrums">DrumsがDangerならtrue</param>\r
64                 /// <param name="bIsDamgerGuitar">GuitarがDangerならtrue</param>\r
65                 /// <param name="bIsDangerBass">BassがDangerならtrue</param>\r
66                 /// <returns></returns>\r
67                 public int t進行描画(bool isDanger)\r
68                 {\r
69                         if (b活性化してる)\r
70                         {\r
71                                 if (!isDanger)\r
72                                 {\r
73                                         bDanger中 = false;\r
74                                         return 0;\r
75                                 }\r
76                                 if (!bDanger中)\r
77                                 {\r
78                                         this.ct移動用 = new CCounter(0, 0x7f, 7, CDTXMania.Instance.Timer);\r
79                                         this.ct透明度用 = new CCounter(0, 0x167, 4, CDTXMania.Instance.Timer);\r
80                                 }\r
81                                 bDanger中 = isDanger;\r
82                                 this.ct移動用.t進行Loop();\r
83                                 this.ct透明度用.t進行Loop();\r
84                                 if (!bDanger中)\r
85                                 {\r
86                                         return 0;\r
87                                 }\r
88                                 int num = this.ct透明度用.n現在の値;\r
89                                 if (this.txDANGER != null)\r
90                                 {\r
91                                         this.txDANGER.n透明度 = 60 + ((num < 180) ? num : (360 - num));\r
92                                 }\r
93                                 num = this.ct移動用.n現在の値;\r
94                                 int num2 = CDTXMania.Instance.ConfigIni.bReverse.Drums ? (0x7f - num) : num;\r
95                                 for (int i = -1; i < 4; i++)\r
96                                 {\r
97                                         if (this.txDANGER != null)\r
98                                         {\r
99                                                 //float d = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1.0f : 0.75f;\r
100                                                 //this.txDANGER.vc拡大縮小倍率 = new Vector3(d, d, d);\r
101                                                 int y = (int)(((i * 0x80) + num2) * Scale.Y);\r
102                                                 this.txDANGER.t2D描画(CDTXMania.Instance.Device,\r
103                                                         CDTXMania.Instance.Coordinates.Danger.Min, y);\r
104                                                 this.txDANGER.t2D描画(CDTXMania.Instance.Device,\r
105                                                         CDTXMania.Instance.Coordinates.Danger.Max, y);\r
106                                         }\r
107                                 }\r
108                         }\r
109                         return 0;\r
110                 }\r
111 \r
112         }\r
113 }\r