2 using System.Collections.Generic;
\r
4 using System.Runtime.InteropServices;
\r
9 internal class CAct演奏Guitar判定文字列 : CAct演奏判定文字列共通
\r
13 public CAct演奏Guitar判定文字列()
\r
15 STレーンサイズ[] stレーンサイズArray = new STレーンサイズ[ 12 ];
\r
16 STレーンサイズ stレーンサイズ = new STレーンサイズ();
\r
19 stレーンサイズArray[ 0 ] = stレーンサイズ;
\r
20 STレーンサイズ stレーンサイズ2 = new STレーンサイズ();
\r
23 stレーンサイズArray[ 1 ] = stレーンサイズ2;
\r
24 STレーンサイズ stレーンサイズ3 = new STレーンサイズ();
\r
27 stレーンサイズArray[ 2 ] = stレーンサイズ3;
\r
28 STレーンサイズ stレーンサイズ4 = new STレーンサイズ();
\r
31 stレーンサイズArray[ 3 ] = stレーンサイズ4;
\r
32 STレーンサイズ stレーンサイズ5 = new STレーンサイズ();
\r
35 stレーンサイズArray[ 4 ] = stレーンサイズ5;
\r
36 STレーンサイズ stレーンサイズ6 = new STレーンサイズ();
\r
39 stレーンサイズArray[ 5 ] = stレーンサイズ6;
\r
40 STレーンサイズ stレーンサイズ7 = new STレーンサイズ();
\r
41 stレーンサイズ7.x = 0x105;
\r
43 stレーンサイズArray[ 6 ] = stレーンサイズ7;
\r
44 STレーンサイズ stレーンサイズ8 = new STレーンサイズ();
\r
45 stレーンサイズ8.x = 0x127;
\r
47 stレーンサイズArray[ 7 ] = stレーンサイズ8;
\r
48 STレーンサイズ stレーンサイズ9 = new STレーンサイズ();
\r
51 stレーンサイズArray[ 8 ] = stレーンサイズ9;
\r
52 STレーンサイズ stレーンサイズ10 = new STレーンサイズ();
\r
55 stレーンサイズArray[ 9 ] = stレーンサイズ10;
\r
56 STレーンサイズ stレーンサイズ11 = new STレーンサイズ();
\r
57 stレーンサイズ11.x = 0x1a;
\r
58 stレーンサイズ11.w = 0x6f;
\r
59 stレーンサイズArray[ 10 ] = stレーンサイズ11;
\r
60 STレーンサイズ stレーンサイズ12 = new STレーンサイズ();
\r
62 stレーンサイズ12.w = 0x6f;
\r
63 stレーンサイズArray[ 11 ] = stレーンサイズ12;
\r
64 this.stレーンサイズ = stレーンサイズArray;
\r
65 base.b活性化してない = true;
\r
69 // CActivity 実装(共通クラスからの差分のみ)
\r
71 public override int On進行描画()
\r
73 if( !base.b活性化してない )
\r
75 for( int i = 0; i < 12; i++ )
\r
77 if( !base.st状態[ i ].ct進行.b停止中 )
\r
79 base.st状態[ i ].ct進行.t進行();
\r
80 if( base.st状態[ i ].ct進行.b終了値に達した )
\r
82 base.st状態[ i ].ct進行.t停止();
\r
84 int num2 = base.st状態[ i ].ct進行.n現在の値;
\r
85 if( ( base.st状態[ i ].judge != E判定.Miss ) && ( base.st状態[ i ].judge != E判定.Bad ) )
\r
89 base.st状態[ i ].fX方向拡大率 = 1f + ( 1f * ( 1f - ( ( (float) num2 ) / 50f ) ) );
\r
90 base.st状態[ i ].fY方向拡大率 = ( (float) num2 ) / 50f;
\r
91 base.st状態[ i ].n相対X座標 = 0;
\r
92 base.st状態[ i ].n相対Y座標 = 0;
\r
93 base.st状態[ i ].n透明度 = 0xff;
\r
95 else if( num2 < 130 )
\r
97 base.st状態[ i ].fX方向拡大率 = 1f;
\r
98 base.st状態[ i ].fY方向拡大率 = 1f;
\r
99 base.st状態[ i ].n相対X座標 = 0;
\r
100 base.st状態[ i ].n相対Y座標 = ( ( num2 % 6 ) == 0 ) ? ( CDTXMania.Random.Next( 6 ) - 3 ) : base.st状態[ i ].n相対Y座標;
\r
101 base.st状態[ i ].n透明度 = 0xff;
\r
103 else if( num2 >= 240 )
\r
105 base.st状態[ i ].fX方向拡大率 = 1f;
\r
106 base.st状態[ i ].fY方向拡大率 = 1f - ( ( 1f * ( num2 - 240 ) ) / 60f );
\r
107 base.st状態[ i ].n相対X座標 = 0;
\r
108 base.st状態[ i ].n相対Y座標 = 0;
\r
109 base.st状態[ i ].n透明度 = 0xff;
\r
113 base.st状態[ i ].fX方向拡大率 = 1f;
\r
114 base.st状態[ i ].fY方向拡大率 = 1f;
\r
115 base.st状態[ i ].n相対X座標 = 0;
\r
116 base.st状態[ i ].n相対Y座標 = 0;
\r
117 base.st状態[ i ].n透明度 = 0xff;
\r
120 else if( num2 < 50 )
\r
122 base.st状態[ i ].fX方向拡大率 = 1f;
\r
123 base.st状態[ i ].fY方向拡大率 = ( (float) num2 ) / 50f;
\r
124 base.st状態[ i ].n相対X座標 = 0;
\r
125 base.st状態[ i ].n相対Y座標 = 0;
\r
126 base.st状態[ i ].n透明度 = 0xff;
\r
128 else if( num2 >= 200 )
\r
130 base.st状態[ i ].fX方向拡大率 = 1f - ( ( (float) ( num2 - 200 ) ) / 100f );
\r
131 base.st状態[ i ].fY方向拡大率 = 1f - ( ( (float) ( num2 - 200 ) ) / 100f );
\r
132 base.st状態[ i ].n相対X座標 = 0;
\r
133 base.st状態[ i ].n相対Y座標 = 0;
\r
134 base.st状態[ i ].n透明度 = 0xff;
\r
138 base.st状態[ i ].fX方向拡大率 = 1f;
\r
139 base.st状態[ i ].fY方向拡大率 = 1f;
\r
140 base.st状態[ i ].n相対X座標 = 0;
\r
141 base.st状態[ i ].n相対Y座標 = 0;
\r
142 base.st状態[ i ].n透明度 = 0xff;
\r
146 for( int j = 0; j < 12; j++ )
\r
148 if( !base.st状態[ j ].ct進行.b停止中 )
\r
150 int index = base.st判定文字列[ (int) base.st状態[ j ].judge ].n画像番号;
\r
157 if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Bass ) == E判定文字表示位置.表示OFF )
\r
161 num5 = ( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Bass ) == E判定文字表示位置.レーン上 ) ? this.stレーンサイズ[ j ].x : 0x163;
\r
162 num6 = CDTXMania.ConfigIni.bReverse.Bass ? 0x12b : 190;
\r
166 if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Guitar ) == E判定文字表示位置.表示OFF )
\r
170 num5 = ( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Guitar ) == E判定文字表示位置.レーン上 ) ? this.stレーンサイズ[ j ].x : 0xaf;
\r
171 num6 = CDTXMania.ConfigIni.bReverse.Guitar ? 0x12b : 190;
\r
173 int x = ( ( num5 + base.st状態[ j ].n相対X座標 ) + ( this.stレーンサイズ[ j ].w / 2 ) ) - ( (int) ( ( ( 128f * base.st状態[ j ].fX方向拡大率 ) * 0.8 ) / 2.0 ) );
\r
174 int y = ( num6 + base.st状態[ j ].n相対Y座標 ) - ( (int) ( ( ( 43f * base.st状態[ j ].fY方向拡大率 ) * 0.8 ) / 2.0 ) );
\r
175 if( base.tx判定文字列[ index ] != null )
\r
177 base.tx判定文字列[ index ].n透明度 = base.st状態[ j ].n透明度;
\r
178 base.tx判定文字列[ index ].vc拡大縮小倍率 = new Vector3( (float) ( base.st状態[ j ].fX方向拡大率 * 0.8 ), (float) ( base.st状態[ j ].fY方向拡大率 * 0.8 ), 1f );
\r
179 base.tx判定文字列[ index ].t2D描画( CDTXMania.app.Device, x, y, base.st判定文字列[ (int) base.st状態[ j ].judge ].rc );
\r
192 #region [ private ]
\r
193 //-----------------
\r
194 [StructLayout( LayoutKind.Sequential )]
\r
195 private struct STレーンサイズ
\r
201 private STレーンサイズ[] stレーンサイズ;
\r
202 //-----------------
\r