2 using System.Collections.Generic;
\r
4 using System.Drawing;
\r
8 using Color = System.Drawing.Color;
\r
12 internal class CAct演奏Danger共通 : CActivity
\r
14 private CTextureAf txDANGER;
\r
15 private CTexture txRedScreen;
\r
16 private bool bDanger中;
\r
17 // = { false, false, false };
\r
18 private CCounter ct移動用;
\r
19 private CCounter ct透明度用;
\r
20 private const int n波長 = 40;
\r
21 private const int n透明度MAX = 180;
\r
22 private const int n透明度MIN = 20;
\r
24 public override void On活性化()
\r
35 public override void On非活性化()
\r
45 public override void OnManagedリソースの作成()
\r
49 this.txDANGER = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenPlayDrums danger.png"), false);
\r
51 using ( Bitmap bmp = new Bitmap( SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height ) )
\r
53 using ( var g = Graphics.FromImage( bmp ) )
\r
55 using ( var brush = new SolidBrush( Color.Red ) )
\r
57 g.FillRectangle( brush, 0, 0, bmp.Width, bmp.Height );
\r
60 this.txRedScreen = TextureFactory.tテクスチャの生成( bmp );
\r
64 base.OnManagedリソースの作成();
\r
68 public override void OnManagedリソースの解放()
\r
72 TextureFactory.tテクスチャの解放(ref this.txRedScreen);
\r
73 TextureFactory.tテクスチャの解放(ref this.txDANGER);
\r
74 base.OnManagedリソースの解放();
\r
81 /// <param name="bIsDangerDrums">DrumsがDangerならtrue</param>
\r
82 /// <param name="bIsDamgerGuitar">GuitarがDangerならtrue</param>
\r
83 /// <param name="bIsDangerBass">BassがDangerならtrue</param>
\r
84 /// <returns></returns>
\r
85 public int t進行描画(bool isDanger)
\r
96 this.ct移動用 = new CCounter(0, 0x7f, 7, CDTXMania.Instance.Timer);
\r
97 this.ct透明度用 = new CCounter(0, 0x167, 4, CDTXMania.Instance.Timer);
\r
99 bDanger中 = isDanger;
\r
100 this.ct移動用.t進行Loop();
\r
101 this.ct透明度用.t進行Loop();
\r
106 int num = this.ct透明度用.n現在の値;
\r
107 if ( txRedScreen != null )
\r
109 this.txRedScreen.n透明度 = ( ( ( num < 180 ) ? num : ( 360 - num ) ) * 256 / 180) / 3 ;
\r
110 this.txRedScreen.t2D描画( CDTXMania.Instance.Device, 0, 0 );
\r
112 if ( this.txDANGER != null )
\r
114 this.txDANGER.n透明度 = 60 + ((num < 180) ? num : (360 - num));
\r
116 num = this.ct移動用.n現在の値;
\r
117 int num2 = CDTXMania.Instance.ConfigIni.bReverse.Drums ? (0x7f - num) : num;
\r
118 for (int i = -1; i < 4; i++)
\r
120 if (this.txDANGER != null)
\r
122 //float d = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1.0f : 0.75f;
\r
123 //this.txDANGER.vc拡大縮小倍率 = new Vector3(d, d, d);
\r
124 int y = (int)(((i * 0x80) + num2) * Scale.Y);
\r
125 this.txDANGER.t2D描画(CDTXMania.Instance.Device,
\r
126 CDTXMania.Instance.Coordinates.Danger.Min, y);
\r
127 this.txDANGER.t2D描画(CDTXMania.Instance.Device,
\r
128 CDTXMania.Instance.Coordinates.Danger.Max, y);
\r