2 using System.Collections.Generic;
\r
4 using System.Drawing;
\r
10 internal class CActResultRank : CActivity
\r
13 public CActResultRank()
\r
15 base.b活性化してない = true;
\r
21 public void tアニメを完了させる()
\r
23 this.ctランク表示.n現在の値 = this.ctランク表示.n終了値;
\r
29 public override void On活性化()
\r
35 public override void On非活性化()
\r
37 if( this.ct白波移動 != null )
\r
41 if( this.ctランク表示 != null )
\r
43 this.ctランク表示 = null;
\r
47 public override void OnManagedリソースの作成()
\r
49 if( !base.b活性化してない )
\r
51 this.txランクパネル = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rank panel.png" ) );
\r
52 this.tx白波 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rank wave.png" ) );
\r
53 switch (CDTXMania.app.stage結果.n総合ランク値)
\r
56 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankSS.png" ) );
\r
60 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankS.png" ) );
\r
64 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankA.png" ) );
\r
68 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankB.png" ) );
\r
72 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankC.png" ) );
\r
76 this.txランク文字 = TextureFactory.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenResult rankD.png" ) );
\r
80 case 99: // #23534 2010.10.28 yyagi: 演奏チップが0個のときは、rankEと見なす
\r
81 this.txランク文字 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult rankE.png"));
\r
85 this.txランク文字 = null;
\r
88 base.OnManagedリソースの作成();
\r
91 public override void OnManagedリソースの解放()
\r
93 if( !base.b活性化してない )
\r
95 TextureFactory.tテクスチャの解放( ref this.txランクパネル );
\r
96 TextureFactory.tテクスチャの解放( ref this.tx白波 );
\r
97 TextureFactory.tテクスチャの解放( ref this.txランク文字 );
\r
98 base.OnManagedリソースの解放();
\r
101 public override int On進行描画()
\r
103 if( base.b活性化してない )
\r
107 if( base.b初めての進行描画 )
\r
109 this.ct白波移動 = new CCounter( -132, 0x170, 10, CDTXMania.app.Timer );
\r
110 this.ctランク表示 = new CCounter( 0, 0x514, 2, CDTXMania.app.Timer );
\r
111 base.b初めての進行描画 = false;
\r
113 this.ct白波移動.t進行Loop();
\r
114 this.ctランク表示.t進行();
\r
115 if( this.ctランク表示.n現在の値 >= 700 )
\r
117 float y = ( this.ctランク表示.n現在の値 > 0x3e8 ) ? 1f : ( ( (float) ( this.ctランク表示.n現在の値 - 700 ) ) / 300f );
\r
118 if( this.txランクパネル != null )
\r
120 this.txランクパネル.n透明度 = (int) ( 255f * y );
\r
121 this.txランクパネル.vc拡大縮小倍率 = new Vector3( 1f, y, 1f );
\r
122 this.txランクパネル.t2D描画(
\r
123 CDTXMania.app.Device,
\r
124 this.n本体X * Scale.X,
\r
125 (this.n本体Y + ( (int) ( ( 1f - y ) * 64f ) )) * Scale.Y
\r
129 if( this.ctランク表示.n現在の値 >= 0x3e8 )
\r
131 double num2 = ( (double) ( this.ctランク表示.n現在の値 - 0x3e8 ) ) / 300.0;
\r
132 if( this.txランク文字 != null )
\r
134 this.txランク文字.t2D描画(
\r
135 CDTXMania.app.Device,
\r
136 this.n本体X * Scale.X,
\r
137 this.n本体Y * Scale.Y,
\r
141 (int) ( 128.0 * num2 * Scale.X),
\r
142 (int)(0x80 * Scale.Y)
\r
148 if( !this.ctランク表示.b終了値に達した )
\r
158 #region [ private ]
\r
159 //-----------------
\r
160 private CCounter ctランク表示;
\r
161 private CCounter ct白波移動;
\r
164 private CTexture txランクパネル;
\r
165 private CTexture txランク文字;
\r
166 private CTexture tx白波;
\r
168 private void t描画_白波()
\r
170 if( !this.ctランク表示.b終了値に達してない )
\r
172 int num = this.ct白波移動.n現在の値;
\r
173 int num2 = this.n本体X;
\r
174 int y = this.n本体Y + num;
\r
175 if( ( y < ( this.n本体Y + 0x80 ) ) && ( ( y + 0x20 ) > this.n本体Y ) )
\r
177 Rectangle rectangle = new Rectangle( 0, 0, 0x20, 0x20 );
\r
178 if( y < this.n本体Y )
\r
180 rectangle.Y += this.n本体Y - y;
\r
181 rectangle.Height -= this.n本体Y - y;
\r
184 if( ( y + 0x20 ) > ( this.n本体Y + 0x80 ) )
\r
186 rectangle.Height -= ( y + 0x20 ) - ( this.n本体Y + 0x80 );
\r
188 if( rectangle.Bottom > rectangle.Top )
\r
190 for( int i = 0; i < 4; i++ )
\r
192 if( this.tx白波 != null )
\r
194 Rectangle rectangle1 = rectangle;
\r
195 rectangle1.X = (int) ( rectangle1.X * Scale.X );
\r
196 rectangle1.Y = (int) ( rectangle1.Y * Scale.Y );
\r
197 rectangle1.Width = (int) ( rectangle1.Width * Scale.X );
\r
198 rectangle1.Height = (int) ( rectangle1.Height * Scale.Y );
\r
200 CDTXMania.app.Device,
\r
201 (num2 + ( i * 0x20 )) * Scale.X,
\r
211 //-----------------
\r