+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
- internal class CAct演奏Drumsパッド : CActivity\r
- {\r
- private readonly EPad[] n描画順 = new EPad[] {\r
- EPad.BD,\r
- EPad.FT,\r
- EPad.LT,\r
- EPad.HT,\r
- EPad.SD,\r
- EPad.CY,\r
- EPad.HH,\r
- EPad.RD,\r
- EPad.LC\r
- };\r
- private long nY座標制御タイマ;\r
- private long nフラッシュ制御タイマ;\r
- private STPadValue<STパッド状態> stパッド状態 = new STPadValue<STパッド状態>();\r
- private CTexture txパッド;\r
- private CTexture tx光るパッド;\r
-\r
- private class STパッド状態\r
- {\r
- public int n明るさ;\r
- public int nY座標オフセットdot;\r
- public int nY座標加速度dot;\r
- public STパッド状態(int n明るさ_, int nY座標オフセットdot_, int nY座標加速度dot_)\r
- {\r
- n明るさ = n明るさ_;\r
- nY座標オフセットdot = nY座標オフセットdot_;\r
- nY座標加速度dot = nY座標加速度dot_;\r
- }\r
- }\r
-\r
- public void Hit(EPad ePad)\r
- {\r
- this.stパッド状態[ePad].n明るさ = 6;\r
- this.stパッド状態[ePad].nY座標加速度dot = 2;\r
- }\r
-\r
- public override void On活性化()\r
- {\r
- if (base.b活性化してない)\r
- {\r
- this.nフラッシュ制御タイマ = -1;\r
- this.nY座標制御タイマ = -1;\r
- for (EPad i = EPad.DrumsPadMin; i < EPad.DrumsPadMax; ++i)\r
- {\r
- this.stパッド状態[i] = new STパッド状態(0, 0, 0);\r
- }\r
- base.On活性化();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの作成()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- this.txパッド = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums pads.png"));\r
- this.tx光るパッド = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlayDrums pads flush.png"));\r
- base.OnManagedリソースの作成();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの解放()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- TextureFactory.tテクスチャの解放(ref this.txパッド);\r
- TextureFactory.tテクスチャの解放(ref this.tx光るパッド);\r
- base.OnManagedリソースの解放();\r
- }\r
- }\r
-\r
- public override int On進行描画()\r
- {\r
- if (b活性化してる &&\r
- CDTXMania.Instance.ConfigIni.bDrums有効 &&\r
- CDTXMania.Instance.DTX.bチップがある.Drums &&\r
- CDTXMania.Instance.ConfigIni.eDark != EDark.Full)\r
- {\r
- if (b初めての進行描画)\r
- {\r
- nフラッシュ制御タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
- nY座標制御タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
- b初めての進行描画 = false;\r
- }\r
- long n現在時刻 = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
- if (n現在時刻 < this.nフラッシュ制御タイマ)\r
- {\r
- this.nフラッシュ制御タイマ = n現在時刻;\r
- }\r
- while ((n現在時刻 - this.nフラッシュ制御タイマ) >= 15)\r
- {\r
- for (EPad i = EPad.DrumsPadMin; i < EPad.DrumsPadMax; i++)\r
- {\r
- if (this.stパッド状態[i].n明るさ > 0)\r
- {\r
- this.stパッド状態[i].n明るさ--;\r
- }\r
- }\r
- this.nフラッシュ制御タイマ += 15;\r
- }\r
- n現在時刻 = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
- if (n現在時刻 < this.nY座標制御タイマ)\r
- {\r
- this.nY座標制御タイマ = n現在時刻;\r
- }\r
- while ((n現在時刻 - this.nY座標制御タイマ) >= 5)\r
- {\r
- for (EPad i = EPad.DrumsPadMin; i < EPad.DrumsPadMax; i++)\r
- {\r
- this.stパッド状態[i].nY座標オフセットdot += this.stパッド状態[i].nY座標加速度dot;\r
- if (this.stパッド状態[i].nY座標オフセットdot > 15)\r
- {\r
- this.stパッド状態[i].nY座標オフセットdot = 15;\r
- this.stパッド状態[i].nY座標加速度dot = -1;\r
- }\r
- else if (this.stパッド状態[i].nY座標オフセットdot < 0)\r
- {\r
- this.stパッド状態[i].nY座標オフセットdot = 0;\r
- this.stパッド状態[i].nY座標加速度dot = 0;\r
- }\r
- }\r
- this.nY座標制御タイマ += 5;\r
- }\r
- #region [ 表示 ]\r
- for (int idx = 0; idx < n描画順.Length; idx++)\r
- {\r
- EPad i = n描画順[idx];\r
- Rectangle rc = CDTXMania.Instance.Coordinates.ImgDrPad[i];\r
- int x = CDTXMania.Instance.ConfigIni.GetLaneX(EnumConverter.LaneFromPad(i)) +\r
- (CDTXMania.Instance.ConfigIni.GetLaneW(EnumConverter.LaneFromPad(i)) / 2 -\r
- CDTXMania.Instance.Coordinates.ImgDrPad[i].W / 2);\r
- int yoffset = CDTXMania.Instance.Coordinates.DrPadOffset[i].Y;\r
- int y = (CDTXMania.Instance.ConfigIni.bReverse.Drums ?\r
- SampleFramework.GameWindowSize.Height - CDTXMania.Instance.Coordinates.DrPad.Y - yoffset - rc.Height :\r
- CDTXMania.Instance.Coordinates.DrPad.Y + yoffset) + 2 * this.stパッド状態[i].nY座標オフセットdot;\r
-\r
- if (this.txパッド != null)\r
- {\r
- this.txパッド.t2D描画(CDTXMania.Instance.Device, x, y, rc);\r
- }\r
- if (this.tx光るパッド != null)\r
- {\r
- this.tx光るパッド.n透明度 = (this.stパッド状態[i].n明るさ * 40) + 15;\r
- this.tx光るパッド.t2D描画(CDTXMania.Instance.Device, x, y, rc);\r
- }\r
- }\r
- #endregion\r
- }\r
-\r
- return 0;\r
- }\r
- }\r
-}\r