2 using System.Collections.Generic;
\r
4 using System.Drawing;
\r
9 internal class CAct演奏Guitarゲージ : CAct演奏ゲージ共通
\r
13 // public STDGBVALUE<double> db現在のゲージ値;
\r
18 public CAct演奏Guitarゲージ()
\r
20 base.b活性化してない = true;
\r
26 public override void On活性化()
\r
28 // CAct演奏ゲージ共通.Init()に移動
\r
29 // this.db現在のゲージ値.Guitar = ( CDTXMania.app.ConfigIni.nRisky > 0 ) ? 1.0 : 0.66666666666666663;
\r
30 // this.db現在のゲージ値.Bass = ( CDTXMania.app.ConfigIni.nRisky > 0 ) ? 1.0 : 0.66666666666666663;
\r
33 public override void On非活性化()
\r
39 public override void OnManagedリソースの作成()
\r
41 if( !base.b活性化してない )
\r
43 this.txゲージ = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayGuitar gauge.png" ) );
\r
44 base.OnManagedリソースの作成();
\r
47 public override void OnManagedリソースの解放()
\r
49 if( !base.b活性化してない )
\r
51 TextureFactory.tテクスチャの解放( ref this.txゲージ );
\r
52 base.OnManagedリソースの解放();
\r
55 public override int On進行描画()
\r
57 if( !base.b活性化してない )
\r
61 if( base.b初めての進行描画 )
\r
63 this.ct本体移動 = new CCounter( 0, 0x1a, 20, CDTXMania.app.Timer );
\r
64 this.ct本体振動 = new CCounter( 0, 360, 4, CDTXMania.app.Timer );
\r
65 base.b初めての進行描画 = false;
\r
67 this.ct本体移動.t進行Loop();
\r
68 this.ct本体振動.t進行Loop();
\r
71 if ( this.db現在のゲージ値.Guitar == 1.0 ) // ギターのゲージ
\r
73 num = (int) ( 128.0 * this.db現在のゲージ値.Guitar );
\r
77 num = (int) ( ( 128.0 * this.db現在のゲージ値.Guitar ) + ( 2.0 * Math.Sin( Math.PI * 2 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) );
\r
81 Rectangle rectangle;
\r
82 int num2 = 0x1a - this.ct本体移動.n現在の値;
\r
83 int x = 0xb2 - num2;
\r
84 int num4 = num + num2;
\r
87 if( this.db現在のゲージ値.Guitar == 1.0 )
\r
89 rectangle = new Rectangle( 0x1b, 0, 0x1b, 0x10 );
\r
93 rectangle = new Rectangle( 0, 0, 0x1b, 0x10 );
\r
97 int num5 = 0xb2 - x;
\r
98 rectangle.X += num5;
\r
99 rectangle.Width -= num5;
\r
102 if( ( x + rectangle.Width ) > ( 0xb2 + num ) )
\r
104 int num6 = ( x + rectangle.Width ) - ( 0xb2 + num );
\r
105 rectangle.Width -= num6;
\r
107 if( rectangle.Left >= rectangle.Right )
\r
111 if( this.txゲージ != null )
\r
113 Rectangle rectangle1 = rectangle;
\r
114 rectangle1.X = (int) ( rectangle1.X * Scale.X );
\r
115 rectangle1.Y = (int) ( rectangle1.Y * Scale.Y );
\r
116 rectangle1.Width = (int) ( rectangle1.Width * Scale.X );
\r
117 rectangle1.Height = (int) ( rectangle1.Height * Scale.Y );
\r
119 this.txゲージ.b加算合成 = false;
\r
121 CDTXMania.app.Device,
\r
127 num4 -= rectangle.Width;
\r
128 x += rectangle.Width;
\r
130 rectangle = new Rectangle( 0, 0x10, 0x40, 0x10 );
\r
131 x = ( 0xb2 + num ) - 0x40;
\r
134 int num7 = 0xb2 - x;
\r
135 rectangle.X += num7;
\r
136 rectangle.Width -= num7;
\r
139 if( ( x + rectangle.Width ) > ( 0xb2 + num ) )
\r
141 int num8 = ( x + rectangle.Width ) - ( 0xb2 + num );
\r
142 rectangle.Width -= num8;
\r
144 if( ( rectangle.Left < rectangle.Right ) && ( this.txゲージ != null ) )
\r
146 this.txゲージ.b加算合成 = true;
\r
147 rectangle.X = (int) ( rectangle.X * Scale.X );
\r
148 rectangle.Y = (int) ( rectangle.Y * Scale.Y );
\r
149 rectangle.Width = (int) ( rectangle.Width * Scale.X );
\r
150 rectangle.Height = (int) ( rectangle.Height * Scale.Y );
\r
151 this.txゲージ.t2D描画( CDTXMania.app.Device,
\r
157 if (this.bRisky && this.actLVLNFont != null) // #23599 2011.7.30 yyagi Risky残りMiss回数表示
\r
159 CActLVLNFont.EFontColor efc = this.IsDanger( E楽器パート.GUITAR ) ?
\r
160 CActLVLNFont.EFontColor.Red : CActLVLNFont.EFontColor.Yellow;
\r
161 actLVLNFont.t文字列描画(
\r
162 (int) ( 196 * Scale.X ),
\r
163 (int) ( 6 * Scale.Y ),
\r
164 nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Left );
\r
169 #region [ ベースのゲージ ]
\r
170 if ( this.db現在のゲージ値.Bass == 1.0 )
\r
172 num9 = (int) ( 128.0 * this.db現在のゲージ値.Bass );
\r
176 num9 = (int) ( ( 128.0 * this.db現在のゲージ値.Bass ) + ( 2.0 * Math.Sin( Math.PI * 2 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) );
\r
180 Rectangle rectangle2;
\r
181 int num10 = this.ct本体移動.n現在の値;
\r
182 int num11 = ( 0x1cf - num9 ) - num10;
\r
183 int num12 = num9 + num10;
\r
186 if( this.db現在のゲージ値.Bass == 1.0 )
\r
188 rectangle2 = new Rectangle( 10, 0x30, 0x1b, 0x10 );
\r
192 rectangle2 = new Rectangle( 0x25, 0x30, 0x1b, 0x10 );
\r
194 if( num11 < ( 0x1cf - num9 ) )
\r
196 int num13 = ( 0x1cf - num9 ) - num11;
\r
197 rectangle2.X += num13;
\r
198 rectangle2.Width -= num13;
\r
201 if( ( num11 + rectangle2.Width ) > 0x1cf )
\r
203 int num14 = ( num11 + rectangle2.Width ) - 0x1cf;
\r
204 rectangle2.Width -= num14;
\r
206 if( rectangle2.Left >= rectangle2.Right )
\r
210 if( this.txゲージ != null )
\r
212 Rectangle rectangle3 = rectangle2;
\r
213 rectangle3.X = (int) ( rectangle3.X * Scale.X );
\r
214 rectangle3.Y = (int) ( rectangle3.Y * Scale.Y );
\r
215 rectangle3.Width = (int) ( rectangle3.Width * Scale.X );
\r
216 rectangle3.Height = (int) ( rectangle3.Height * Scale.Y );
\r
217 this.txゲージ.b加算合成 = false;
\r
219 CDTXMania.app.Device,
\r
225 num12 -= rectangle2.Width;
\r
226 num11 += rectangle2.Width;
\r
228 rectangle2 = new Rectangle( 0, 0x20, 0x40, 0x10 );
\r
229 num11 = 0x1cf - num9;
\r
230 if( ( num11 + rectangle2.Width ) > 0x1cf )
\r
232 int num15 = ( num11 + rectangle2.Width ) - 0x1cf;
\r
233 rectangle2.Width -= num15;
\r
235 if( ( rectangle2.Left < rectangle2.Right ) && ( this.txゲージ != null ) )
\r
237 this.txゲージ.b加算合成 = true;
\r
238 rectangle2.X = (int) ( rectangle2.X * Scale.X );
\r
239 rectangle2.Y = (int) ( rectangle2.Y * Scale.Y );
\r
240 rectangle2.Width = (int) ( rectangle2.Width * Scale.X );
\r
241 rectangle2.Height = (int) ( rectangle2.Height * Scale.Y );
\r
243 CDTXMania.app.Device,
\r
249 if (this.bRisky && this.actLVLNFont != null) // #23599 2011.7.30 yyagi Risky残りMiss回数表示
\r
251 CActLVLNFont.EFontColor efc = this.IsDanger( E楽器パート.GUITAR ) ?
\r
252 CActLVLNFont.EFontColor.Red : CActLVLNFont.EFontColor.Yellow;
\r
253 actLVLNFont.t文字列描画(
\r
254 (int) ( 445 * Scale.X ),
\r
255 (int) ( 6 * Scale.Y ),
\r
256 nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Right );
\r
267 #region [ private ]
\r
268 //-----------------
\r
269 //private CCounter ct本体移動;
\r
270 //private CCounter ct本体振動;
\r
271 //private CTexture txゲージ;
\r
272 //-----------------
\r