OSDN Git Service

#36708 StageClear演出、FCEXC演出のクラスを追加。
[dtxmaniaxg-verk/dtxmaniaxg-verk-git.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / CAct演奏StageClear.cs
1 using DirectShowLib;
2 using System;
3 using System.Collections.Generic;
4 using System.Text;
5 using System.Drawing;
6 using FDK;
7
8 namespace DTXMania
9 {
10         internal class CAct演奏StageClear : CActivity
11         {
12                 // メソッド
13
14                 public void t開始()
15                 {
16                         this.counter = new CCounter( 0, 200, 5, CDTXMania.Timer );
17                 }
18                 public void t完了()
19                 {
20                         this.counter.n現在の値 = this.counter.n終了値;
21                 }
22
23                 // CActivity 実装
24
25                 public override void On非活性化()
26                 {
27                         if( !base.b活性化してない )
28                         {
29                                 CDTXMania.tテクスチャの解放( ref this.tx描画用 );
30                 CDTXMania.t安全にDisposeする( ref this.dsStageClear );
31                                 base.On非活性化();
32                         }
33                 }
34                 public override void OnManagedリソースの作成()
35                 {
36                         if( !base.b活性化してない )
37                         {
38                 this.tx描画用 = new CTexture( CDTXMania.app.Device, 1280, 720, CDTXMania.TextureFormat );
39                 this.dsStageClear = CDTXMania.t失敗してもスキップ可能なDirectShowを生成する( CSkin.Path( @"Graphics\7_StageClear.mp4" ), CDTXMania.app.WindowHandle, true, true );
40                                 base.OnManagedリソースの作成();
41                         }
42                 }
43                 public override int On進行描画()
44                 {
45                         if( base.b活性化してない || ( this.counter == null ) )
46                         {
47                                 return 0;
48                         }
49             if( base.b初めての進行描画 )
50             {
51                 CDTXMania.Skin.soundステージクリア音.t再生する();
52                 base.b初めての進行描画 = true;
53             }
54                         this.counter.t進行();
55
56
57                         
58                         if( CDTXMania.Skin.soundステージクリア音.b再生中 )
59                         {
60                                 return 0;
61                         }
62
63             if( CDTXMania.Skin.soundステージクリア音 == null )
64             {
65                 if( this.counter.b終了値に達した )
66                 {
67                     return 1;
68                 }
69             }
70                         return 1;
71                 }
72
73
74                 // その他
75
76                 #region [ private ]
77                 //-----------------
78                 private CCounter counter;
79                 private EFIFOモード mode;
80                 private CTexture tx白タイル64x64;
81         private CTexture tx描画用;
82         private CDirectShow dsStageClear;
83                 //-----------------
84                 #endregion
85         }
86 }