using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.IO; using FDK; namespace DTXMania { internal class CAct演奏ステージ失敗 : CActivity { public CAct演奏ステージ失敗() { base.b活性化してない = true; } public void Start() { this.ct進行 = new CCounter(0, 0x3e8, 2, CDTXMania.Instance.Timer); } public override void On活性化() { this.sd効果音 = null; this.b効果音再生済み = false; this.ct進行 = new CCounter(); base.On活性化(); } public override void On非活性化() { this.ct進行 = null; if (this.sd効果音 != null) { CDTXMania.Instance.Sound管理.tサウンドを破棄する(this.sd効果音); this.sd効果音 = null; } base.On非活性化(); } public override void OnManagedリソースの作成() { if (!base.b活性化してない) { this.txStageFailed = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay stage failed.jpg")); base.OnManagedリソースの作成(); } } public override void OnManagedリソースの解放() { if (!base.b活性化してない) { TextureFactory.tテクスチャの解放(ref this.txStageFailed); base.OnManagedリソースの解放(); } } public override int On進行描画() { if (base.b活性化してない) { return 0; } if ((this.ct進行 == null) || this.ct進行.b停止中) { return 0; } this.ct進行.t進行(); if (this.ct進行.n現在の値 < 100) { int x = (int)(320.0 * Math.Cos((Math.PI / 2 * this.ct進行.n現在の値) / 100.0)); if ((x != 320) && (this.txStageFailed != null)) { this.txStageFailed.t2D描画(CDTXMania.Instance.Device, 0, 0, new Rectangle((int)(x * Scale.X), 0, (int)((320 - x) * Scale.X), (int)(480 * Scale.Y))); this.txStageFailed.t2D描画(CDTXMania.Instance.Device, (int)((320 + x) * Scale.X), 0, new Rectangle((int)(320 * Scale.X), 0, (int)((320 - x) * Scale.X), (int)(480 * Scale.Y))); } } else { if (this.txStageFailed != null) { this.txStageFailed.t2D描画(CDTXMania.Instance.Device, 0, 0); } if (this.ct進行.n現在の値 <= 250) { int num2 = CDTXMania.Instance.Random.Next(5) - 2; int y = CDTXMania.Instance.Random.Next(5) - 2; if (this.txStageFailed != null) { this.txStageFailed.t2D描画(CDTXMania.Instance.Device, num2 * Scale.X, y * Scale.Y); } } if (!this.b効果音再生済み) { if (((CDTXMania.Instance.DTX.SOUND_STAGEFAILED != null) && (CDTXMania.Instance.DTX.SOUND_STAGEFAILED.Length > 0)) && File.Exists(CDTXMania.Instance.DTX.strフォルダ名 + CDTXMania.Instance.DTX.SOUND_STAGEFAILED)) { try { if (this.sd効果音 != null) { CDTXMania.Instance.Sound管理.tサウンドを破棄する(this.sd効果音); this.sd効果音 = null; } this.sd効果音 = CDTXMania.Instance.Sound管理.tサウンドを生成する(CDTXMania.Instance.DTX.strフォルダ名 + CDTXMania.Instance.DTX.SOUND_STAGEFAILED); this.sd効果音.t再生を開始する(); } catch { } } else { CDTXMania.Instance.Skin.soundSTAGEFAILED音.t再生する(); } this.b効果音再生済み = true; } } if (!this.ct進行.b終了値に達した) { return 0; } return 1; } private bool b効果音再生済み; private CCounter ct進行; private CSound sd効果音; private CTexture txStageFailed; } }