OSDN Git Service

8ce46ce1b2e8379dab86497469cecdafe8ecc0d1
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / ドラム画面 / CAct演奏DrumsDanger.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 \r
7 namespace DTXMania\r
8 {\r
9         internal class CAct演奏DrumsDanger : CAct演奏Danger共通\r
10         {\r
11                 // コンストラクタ\r
12 \r
13                 //public CAct演奏DrumsDanger()\r
14                 //{\r
15                 //    base.b活性化してない = true;\r
16                 //}\r
17 \r
18 \r
19                 // CActivity 実装\r
20 \r
21                 //public override void On活性化()\r
22                 //{\r
23                 //    this.bDanger中 = false;\r
24                 //    this.ct移動用 = new CCounter();\r
25                 //    this.ct透明度用 = new CCounter();\r
26                 //    base.On活性化();\r
27                 //}\r
28                 //public override void On非活性化()\r
29                 //{\r
30                 //    this.ct移動用 = null;\r
31                 //    this.ct透明度用 = null;\r
32                 //    base.On非活性化();\r
33                 //}\r
34                 public override void OnManagedリソースの作成()\r
35                 {\r
36                         if( !base.b活性化してない )\r
37                         {\r
38                                 this.txDANGER = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums danger.png" ) );\r
39                                 base.OnManagedリソースの作成();\r
40                         }\r
41                 }\r
42                 public override void OnManagedリソースの解放()\r
43                 {\r
44                         if( !base.b活性化してない )\r
45                         {\r
46                                 CDTXMania.tテクスチャの解放( ref this.txDANGER );\r
47                                 base.OnManagedリソースの解放();\r
48                         }\r
49                 }\r
50                 public override int On進行描画()\r
51                 {\r
52                         throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" );\r
53                 }\r
54                 /// <summary>\r
55                 /// ドラム画面のDANGER描画\r
56                 /// </summary>\r
57                 /// <param name="bIsDangerDrums">DrumsのゲージがDangerかどうか(Guitar/Bassと共用のゲージ)</param>\r
58                 /// <param name="bIsDangerGuitar">Guitarのゲージ(未使用)</param>\r
59                 /// <param name="bIsDangerBass">Bassのゲージ(未使用)</param>\r
60                 /// <returns></returns>\r
61                 public override int t進行描画( bool bIsDangerDrums, bool bIsDangerGuitar, bool bIsDangerBass )\r
62                 {\r
63                         if( !base.b活性化してない )\r
64                         {\r
65                                 if( !bIsDangerDrums )\r
66                                 {\r
67                                         this.bDanger中[(int)E楽器パート.DRUMS] = false;\r
68                                         return 0;\r
69                                 }\r
70                                 if( !this.bDanger中[(int)E楽器パート.DRUMS] )\r
71                                 {\r
72                                         this.ct移動用 = new CCounter( 0, 0x7f, 7, CDTXMania.Timer );\r
73                                         this.ct透明度用 = new CCounter( 0, 0x167, 4, CDTXMania.Timer );\r
74                                 }\r
75                                 this.bDanger中[(int)E楽器パート.DRUMS] = bIsDangerDrums;\r
76                                 this.ct移動用.t進行Loop();\r
77                                 this.ct透明度用.t進行Loop();\r
78                                 if( !this.bDanger中[(int)E楽器パート.DRUMS] )\r
79                                 {\r
80                                         return 0;\r
81                                 }\r
82                                 int num = this.ct透明度用.n現在の値;\r
83                                 if( this.txDANGER != null )\r
84                                 {\r
85                                         this.txDANGER.n透明度 = 60 + ( ( num < 180 ) ? num : ( 360 - num ) );\r
86                                 }\r
87                                 num = this.ct移動用.n現在の値;\r
88                                 int num2 = CDTXMania.ConfigIni.bReverse.Drums ? ( 0x7f - num ) : num;\r
89                                 for( int i = -1; i < 4; i++ )\r
90                                 {\r
91                                         if( this.txDANGER != null )\r
92                                         {\r
93                                                 this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26, ( i * 0x80 ) + num2, this.rc領域[ 0 ] );\r
94                                                 this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26, ( ( i * 0x80 ) + num2 ) + 0x40, this.rc領域[ 1 ] );\r
95                                                 this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a, ( i * 0x80 ) + num2, this.rc領域[ 0 ] );\r
96                                                 this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a, ( ( i * 0x80 ) + num2 ) + 0x40, this.rc領域[ 1 ] );\r
97                                         }\r
98                                 }\r
99                         }\r
100                         return 0;\r
101                 }\r
102 \r
103 \r
104                 // その他\r
105 \r
106                 #region [ private ]\r
107                 //-----------------\r
108                 //private bool bDanger中;\r
109                 //private CCounter ct移動用;\r
110                 //private CCounter ct透明度用;\r
111 //              private const int n右位置 = 0x12a;\r
112 //              private const int n左位置 = 0x26;\r
113                 private readonly Rectangle[] rc領域 = new Rectangle[] { new Rectangle( 0, 0, 0x20, 0x40 ), new Rectangle( 0x20, 0, 0x20, 0x40 ) };\r
114                 private CTexture txDANGER;\r
115                 //-----------------\r
116                 #endregion\r
117         }\r
118 }\r