+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using FDK;\r
-using SharpDX;\r
-\r
-using Color = System.Drawing.Color;\r
-\r
-namespace DTXMania\r
-{\r
- internal class CAct演奏Danger共通 : CActivity\r
- {\r
- private CTextureAf txDANGER;\r
- private CTexture txRedScreen;\r
- private bool bDanger中;\r
- // = { false, false, false };\r
- private CCounter ct移動用;\r
- private CCounter ct透明度用;\r
- private const int n波長 = 40;\r
- private const int n透明度MAX = 180;\r
- private const int n透明度MIN = 20;\r
-\r
- public override void On活性化()\r
- {\r
- if (b活性化してない)\r
- {\r
- bDanger中 = false;\r
- ct移動用 = null;\r
- ct透明度用 = null;\r
- base.On活性化();\r
- }\r
- }\r
-\r
- public override void On非活性化()\r
- {\r
- if (b活性化してる)\r
- {\r
- this.ct移動用 = null;\r
- this.ct透明度用 = null;\r
- base.On非活性化();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの作成()\r
- {\r
- if (b活性化してる)\r
- {\r
- this.txDANGER = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenPlayDrums danger.png"), false);\r
-\r
- using ( Bitmap bmp = new Bitmap( SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height ) )\r
- {\r
- using ( var g = Graphics.FromImage( bmp ) )\r
- {\r
- using ( var brush = new SolidBrush( Color.Red ) )\r
- {\r
- g.FillRectangle( brush, 0, 0, bmp.Width, bmp.Height );\r
- }\r
- }\r
- this.txRedScreen = TextureFactory.tテクスチャの生成( bmp );\r
- }\r
- \r
-\r
- base.OnManagedリソースの作成();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの解放()\r
- {\r
- if (b活性化してる)\r
- {\r
- TextureFactory.tテクスチャの解放(ref this.txRedScreen);\r
- TextureFactory.tテクスチャの解放(ref this.txDANGER);\r
- base.OnManagedリソースの解放();\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// DANGER描画\r
- /// </summary>\r
- /// <param name="bIsDangerDrums">DrumsがDangerならtrue</param>\r
- /// <param name="bIsDamgerGuitar">GuitarがDangerならtrue</param>\r
- /// <param name="bIsDangerBass">BassがDangerならtrue</param>\r
- /// <returns></returns>\r
- public int t進行描画(bool isDanger)\r
- {\r
- if (b活性化してる)\r
- {\r
- if (!isDanger)\r
- {\r
- bDanger中 = false;\r
- return 0;\r
- }\r
- if (!bDanger中)\r
- {\r
- this.ct移動用 = new CCounter(0, 0x7f, 7, CDTXMania.Instance.Timer);\r
- this.ct透明度用 = new CCounter(0, 0x167, 4, CDTXMania.Instance.Timer);\r
- }\r
- bDanger中 = isDanger;\r
- this.ct移動用.t進行Loop();\r
- this.ct透明度用.t進行Loop();\r
- if (!bDanger中)\r
- {\r
- return 0;\r
- }\r
- int num = this.ct透明度用.n現在の値;\r
- if ( txRedScreen != null )\r
- {\r
- this.txRedScreen.n透明度 = ( ( ( num < 180 ) ? num : ( 360 - num ) ) * 256 / 180) / 3 ;\r
- this.txRedScreen.t2D描画( CDTXMania.Instance.Device, 0, 0 );\r
- }\r
- if ( this.txDANGER != null )\r
- {\r
- this.txDANGER.n透明度 = 60 + ((num < 180) ? num : (360 - num));\r
- }\r
- num = this.ct移動用.n現在の値;\r
- int num2 = CDTXMania.Instance.ConfigIni.bReverse.Drums ? (0x7f - num) : num;\r
- for (int i = -1; i < 4; i++)\r
- {\r
- if (this.txDANGER != null)\r
- {\r
- //float d = (CDTXMania.Instance.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left) ? 1.0f : 0.75f;\r
- //this.txDANGER.vc拡大縮小倍率 = new Vector3(d, d, d);\r
- int y = (int)(((i * 0x80) + num2) * Scale.Y);\r
- this.txDANGER.t2D描画(CDTXMania.Instance.Device,\r
- CDTXMania.Instance.Coordinates.Danger.Min, y);\r
- this.txDANGER.t2D描画(CDTXMania.Instance.Device,\r
- CDTXMania.Instance.Coordinates.Danger.Max, y);\r
- }\r
- }\r
- }\r
- return 0;\r
- }\r
-\r
- }\r
-}\r