Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /trunk/DTXManiaプロジェクト/コード/ステージ/08.結果/CActResultRank.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 321 - (hide annotations) (download)
Thu Feb 13 13:41:38 2014 UTC (10 years, 1 month ago) by kairera0467
File size: 16429 byte(s)
#xxxxx リザルトでFCマークが一瞬だけズレて表示されるバグを今度こそ修正。
1 kairera0467 2 using System;
2     using System.Collections.Generic;
3     using System.Text;
4     using System.Drawing;
5 ron1120 237 using System.IO;
6 kairera0467 2 using SlimDX;
7     using FDK;
8    
9     namespace DTXMania
10     {
11     internal class CActResultRank : CActivity
12     {
13 ron1120 237
14 kairera0467 2 // コンストラクタ
15    
16     public CActResultRank()
17     {
18 ron1120 237 base.b活性化してない = true;
19 kairera0467 2 }
20    
21     // メソッド
22    
23     public void tアニメを完了させる()
24     {
25     this.ctランク表示.n現在の値 = this.ctランク表示.n終了値;
26 ron1120 237 this.ct表示用.n現在の値 = this.ct表示用.n終了値;
27     }
28 kairera0467 2
29     // CActivity 実装
30    
31     public override void On活性化()
32     {
33 ron1120 232
34     #region [ 本体位置 ]
35 ron1120 236
36     int nX = 138;
37     int nY = 8;
38    
39     int nX = 850;
40     int nY = 420;
41    
42 ron1120 313 this.n本体X[0] = 0;
43     this.n本体Y[0] = 0;
44 ron1120 238
45 ron1120 313 this.n本体X[1] = 0;
46     this.n本体Y[1] = 0;
47 ron1120 232
48 ron1120 313 this.n本体X[2] = 0;
49     this.n本体Y[2] = 0;
50 ron1120 232
51     if (CDTXMania.ConfigIni.bDrums有効)
52     {
53 ron1120 313 this.n本体X[0] = nX;
54     this.n本体Y[0] = nY;
55 ron1120 232 }
56     else if (CDTXMania.ConfigIni.bGuitar有効)
57     {
58     if (CDTXMania.DTX.bチップがある.Guitar)
59     {
60 ron1120 236 if (CDTXMania.ConfigIni.bIsSwappedGuitarBass)
61     {
62 ron1120 313 this.n本体X[1] = nX;
63     this.n本体Y[1] = nY;
64 ron1120 236 }
65     else
66     {
67 ron1120 313 this.n本体X[1] = nX;
68     this.n本体Y[1] = nY;
69 ron1120 236 }
70 ron1120 232 }
71    
72     if (CDTXMania.DTX.bチップがある.Bass)
73     {
74 ron1120 236 if (CDTXMania.ConfigIni.bIsSwappedGuitarBass)
75     {
76 ron1120 313 this.n本体X[2] = nX;
77     this.n本体Y[2] = nY;
78 ron1120 236 }
79     else
80     {
81 ron1120 313 this.n本体X[2] = nX;
82     this.n本体Y[2] = nY;
83 ron1120 236 }
84 ron1120 232 }
85    
86     }
87     #endregion
88    
89 ron1120 313 this.b全オ.Drums = CDTXMania.ConfigIni.bドラムが全部オトプレイである;
90     this.b全オ.Guitar = CDTXMania.ConfigIni.bギタが全部オトプレイである;
91     this.b全オ.Bass = CDTXMania.ConfigIni.bスが全部オトプレイである;
92    
93 ron1120 237 this.sdDTXで指定されたフルコンボ音 = null;
94     this.bフルコンボ音再生済み = false;
95     this.bエクセレント音再生済み = false;
96     base.On活性化();
97 kairera0467 2 }
98     public override void On非活性化()
99     {
100     if( this.ctランク表示 != null )
101     {
102     this.ctランク表示 = null;
103     }
104 ron1120 237 if (this.ct表示用 != null)
105     {
106     this.ct表示用 = null;
107     }
108     if (this.sdDTXで指定されたフルコンボ音 != null)
109     {
110     CDTXMania.Sound管理.tサウンドを破棄する(this.sdDTXで指定されたフルコンボ音);
111     this.sdDTXで指定されたフルコンボ音 = null;
112     }
113     base.On非活性化();
114 kairera0467 2 }
115     public override void OnManagedリソスの作成()
116     {
117     if( !base.b活性化してない )
118     {
119 ron1120 237
120     this.txFullCombo = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult fullcombo.png"));
121     this.txExcellent = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenResult Excellent.png"));
122    
123 ron1120 313 for (int j = 0; j < 3; j++)
124 kairera0467 110 {
125 ron1120 313 switch (CDTXMania.stage結果.nランク値[j])
126 kairera0467 110 {
127     case 0:
128 ron1120 313 this.txランク文字[j] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\8_rankSS.png"));
129 kairera0467 110 break;
130 kairera0467 2
131 kairera0467 110 case 1:
132 ron1120 313 this.txランク文字[j] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\8_rankS.png"));
133 kairera0467 110 break;
134 kairera0467 2
135 kairera0467 110 case 2:
136 ron1120 313 this.txランク文字[j] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\8_rankA.png"));
137 kairera0467 110 break;
138 kairera0467 2
139 kairera0467 110 case 3:
140 ron1120 313 this.txランク文字[j] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\8_rankB.png"));
141 kairera0467 110 break;
142 kairera0467 2
143 kairera0467 110 case 4:
144 ron1120 313 this.txランク文字[j] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\8_rankC.png"));
145 kairera0467 110 break;
146 kairera0467 2
147 kairera0467 110 case 5:
148 ron1120 313 this.txランク文字[j] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\8_rankD.png"));
149 kairera0467 110 break;
150 kairera0467 2
151 kairera0467 110 case 6:
152     case 99: // #23534 2010.10.28 yyagi: 演奏チップが0個のときは、rankEと見なす
153 ron1120 313 this.txランク文字[j] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\8_rankE.png"));
154     if (this.b全オ[j])
155     this.txランク文字[j] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\8_rankSS.png"));
156 kairera0467 110 break;
157 kairera0467 2
158 kairera0467 110 default:
159 ron1120 313 this.txランク文字[j] = null;
160 kairera0467 110 break;
161     }
162     }
163 kairera0467 2 base.OnManagedリソスの作成();
164     }
165     }
166     public override void OnManagedリソスの解放()
167     {
168     if( !base.b活性化してない )
169     {
170 ron1120 313 CDTXMania.tテクスチャの解放( ref this.txFullCombo );
171     CDTXMania.tテクスチャの解放( ref this.txExcellent );
172     CDTXMania.t安全にDisposeする( ref this.txランク文字 );
173 kairera0467 2 base.OnManagedリソスの解放();
174     }
175     }
176     public override int On進行描画()
177     {
178     if( base.b活性化してない )
179     {
180     return 0;
181     }
182     if( base.b初めての進行描画 )
183     {
184     this.ctランク表示 = new CCounter(0, 0x3e8, 2, CDTXMania.Timer);
185 ron1120 237 this.ct表示用 = new CCounter(0, 1000, 3, CDTXMania.Timer);
186     base.b初めての進行描画 = false;
187 kairera0467 2 }
188     this.ctランク表示.t進行();
189 ron1120 237 this.ct表示用.t進行();
190 kairera0467 321
191     if ((CDTXMania.Input管理.Keyboard.bが押されている(0x3c)))
192     {
193     //F7
194     //CDTXMania.stage演奏ドラム画面.actGauge.db現在のゲージ値.Drums = 1.0;
195     //CDTXMania.stage演奏ドラム画面.actAVI.LivePoint = 300.0;
196     //CDTXMania.stage演奏ドラム画面.actGraph.dbグラフ値現在_渡 = 100.0;
197     //CDTXMania.ConfigIni.nヒット範囲ms.Perfect = 1000;
198     this.ct表示用.n現在の値 = 0;
199    
200     //CDTXMania.stage結果.st演奏記録.Drums.db演奏型スキル値 = 80.0;
201     }
202    
203 ron1120 237 if (this.ctランク表示.n現在の値 >= 500)
204 kairera0467 2 {
205     double num2 = ( (double) ( this.ctランク表示.n現在の値 - 500 ) ) / 500.0;
206 ron1120 313 for (int j = 0; j < 3; j++)
207 kairera0467 2 {
208 ron1120 313 if (this.txランク文字[j] != null && this.n本体X[j] != 0)
209     {
210     this.txランク文字[j].t2D描画(CDTXMania.app.Device, this.n本体X[j], this.n本体Y[j], new Rectangle(0, 0, (int)((double)txランク文字[j].sz画像サイズ.Width * num2), this.txランク文字[j].sz画像サイズ.Height));
211     }
212 ron1120 238 }
213 kairera0467 2 }
214 ron1120 237
215     #region [ フルコンボ ]
216 kairera0467 290 for (int j = 0; j < 3; j++)
217     {
218 kairera0467 321 int num14 = 82 + this.n本体X[j];
219     int num15 = 152 + this.n本体Y[j];
220     if (this.ct表示用.n現在の値 >= 0)
221 ron1120 237 {
222 ron1120 313 if (this.n本体X[j] != 0)
223 ron1120 237 {
224 ron1120 238 if (CDTXMania.stage結果.st演奏記録[j].nPerfect == CDTXMania.stage結果.st演奏記録[j].n全チップ数)
225 ron1120 237 {
226     if (this.ct表示用.b終了値に達した)
227     {
228     if (this.txExcellent != null)
229     {
230 kairera0467 321 if( this.ct表示用.n現在の値 >= 900 )
231     this.txExcellent.t2D描画(CDTXMania.app.Device, num14, num15);
232 ron1120 237 }
233     if (!this.bエクセレント音再生済み)
234     {
235     if (((CDTXMania.DTX.SOUND_FULLCOMBO != null) && (CDTXMania.DTX.SOUND_FULLCOMBO.Length > 0)) && File.Exists(CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.SOUND_FULLCOMBO))
236     {
237     try
238     {
239     if (this.sdDTXで指定されたフルコンボ音 != null)
240     {
241     CDTXMania.Sound管理.tサウンドを破棄する(this.sdDTXで指定されたフルコンボ音);
242     this.sdDTXで指定されたフルコンボ音 = null;
243     }
244     this.sdDTXで指定されたフルコンボ音 = CDTXMania.Sound管理.tサウンドを生成する(CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.SOUND_FULLCOMBO);
245     if (this.sdDTXで指定されたフルコンボ音 != null)
246     {
247     this.sdDTXで指定されたフルコンボ音.t再生を開始する();
248     }
249     }
250     catch
251     {
252     }
253     }
254     else
255     {
256     CDTXMania.Skin.soundエクセレント音.t再生する();
257     }
258     this.bエクセレント音再生済み = true;
259     }
260     }
261     else
262     {
263     double num12 = ((double)(this.ct表示用.n現在の値 - 900)) / 100.0;
264     float num13 = (float)(1.1 - 0.1);
265     if (this.txExcellent != null)
266     {
267     this.txExcellent.vc拡大縮小倍率 = new Vector3(num13, num13, 1f);
268     this.txExcellent.n透明度 = (int)(255.0 * num12);
269 kairera0467 321 if( this.ct表示用.n現在の値 >= 900 )
270     this.txExcellent.t2D描画(CDTXMania.app.Device, num14, num15);
271 ron1120 237 }
272     }
273     }
274 ron1120 238 else if (CDTXMania.stage結果.st演奏記録[j].bフルコンボである && CDTXMania.stage結果.st演奏記録[j].nPerfect != CDTXMania.stage結果.st演奏記録[j].n全チップ数)
275 ron1120 237 {
276     if (this.ct表示用.b終了値に達した)
277     {
278     if (this.txFullCombo != null)
279     {
280 kairera0467 321 if( this.ct表示用.n現在の値 >= 900 )
281     this.txFullCombo.t2D描画(CDTXMania.app.Device, num14, num15);
282 ron1120 237 }
283     if (!this.bフルコンボ音再生済み)
284     {
285     if (((CDTXMania.DTX.SOUND_FULLCOMBO != null) && (CDTXMania.DTX.SOUND_FULLCOMBO.Length > 0)) && File.Exists(CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.SOUND_FULLCOMBO))
286     {
287     try
288     {
289     if (this.sdDTXで指定されたフルコンボ音 != null)
290     {
291     CDTXMania.Sound管理.tサウンドを破棄する(this.sdDTXで指定されたフルコンボ音);
292     this.sdDTXで指定されたフルコンボ音 = null;
293     }
294     this.sdDTXで指定されたフルコンボ音 = CDTXMania.Sound管理.tサウンドを生成する(CDTXMania.DTX.strフォルダ名 + CDTXMania.DTX.SOUND_FULLCOMBO);
295     if (this.sdDTXで指定されたフルコンボ音 != null)
296     {
297     this.sdDTXで指定されたフルコンボ音.t再生を開始する();
298     }
299     }
300     catch
301     {
302     }
303     }
304     else
305     {
306     CDTXMania.Skin.soundフルコンボ音.t再生する();
307     }
308     this.bフルコンボ音再生済み = true;
309     }
310     }
311     else
312     {
313     double num12 = ((double)(this.ct表示用.n現在の値 - 900)) / 100.0;
314     float num13 = (float)(1.1 - 0.1);
315 kairera0467 321 //num14 = this.n本体X[j] + ((int)((this.txFullCombo.sz画像サイズ.Width * (1f - num13)) / 2f));
316     //num15 = this.n本体Y[j] + ((int)((this.txFullCombo.sz画像サイズ.Height * (1f - num13)) / 2f));
317 ron1120 237 if (this.txFullCombo != null)
318     {
319     this.txFullCombo.vc拡大縮小倍率 = new Vector3(num13, num13, 1f);
320     this.txFullCombo.n透明度 = (int)(255.0 * num12);
321 ron1120 240
322 kairera0467 321 if( this.ct表示用.n現在の値 >= 900 )
323     this.txFullCombo.t2D描画(CDTXMania.app.Device, num14, num15);
324 ron1120 237 }
325     }
326     }
327     }
328     }
329     }
330     #endregion
331    
332 kairera0467 2 if( !this.ctランク表示.b終了値に達した )
333     {
334     return 0;
335     }
336     return 1;
337     }
338    
339    
340     // その他
341    
342     #region [ private ]
343     //-----------------
344 ron1120 237 private bool bフルコンボ音再生済み;
345     private bool bエクセレント音再生済み;
346     private CCounter ctランク表示;
347     private CCounter ct表示用;
348 ron1120 313 private STDGBVALUE<int> n本体X;
349     private STDGBVALUE<int> n本体Y;
350     private STDGBVALUE<bool> b全オ;
351 ron1120 237 private CSound sdDTXで指定されたフルコンボ音;
352 ron1120 313 private STDGBVALUE<CTexture> txランク文字;
353 ron1120 237 private CTexture txExcellent;
354     private CTexture txFullCombo;
355     //-----------------
356 kairera0467 2 #endregion
357 ron1120 240
358 kairera0467 2 }
359     }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26