using System; using System.Collections.Generic; using System.Text; using FDK; using System.Drawing; namespace DTXMania { internal class CAct演奏RGB共通 : CActivity { // プロパティ protected bool[] b押下状態 = new bool[6]; protected CTexture txRGB; static ELane[] lanes = new ELane[] { ELane.GtR, ELane.GtG, ELane.GtB, ELane.BsR, ELane.BsG, ELane.BsB }; // コンストラクタ public CAct演奏RGB共通() { base.b活性化してない = true; } // メソッド public void Push(int nLane) { this.b押下状態[nLane] = true; } // CActivity 実装 public override void On活性化() { for (int i = 0; i < 6; i++) { this.b押下状態[i] = false; } base.On活性化(); } public override void OnManagedリソースの作成() { if (!base.b活性化してない) { this.txRGB = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay RGB buttons.png")); base.OnManagedリソースの作成(); } } public override void OnManagedリソースの解放() { if (!base.b活性化してない) { TextureFactory.tテクスチャの解放(ref this.txRGB); base.OnManagedリソースの解放(); } } public override int On進行描画() { if (b活性化してる && CDTXMania.Instance.ConfigIni.bGuitar有効 && CDTXMania.Instance.ConfigIni.eDark != EDark.Full) { for (int i = 0; i < 6; i++) { EPart inst = i < 3 ? EPart.Guitar : EPart.Bass; if (CDTXMania.Instance.DTX.bチップがある[(int)inst]) { int x = CDTXMania.Instance.ConfigIni.GetLaneX(lanes[i]); Rectangle rc; if (i % 3 == 0) { rc = b押下状態[i] ? CDTXMania.Instance.Coordinates.ImgGtPressingButtonR : CDTXMania.Instance.Coordinates.ImgGtButtonR; } else if (i % 3 == 1) { rc = b押下状態[i] ? CDTXMania.Instance.Coordinates.ImgGtPressingButtonG : CDTXMania.Instance.Coordinates.ImgGtButtonG; } else if (i % 3 == 2) { rc = b押下状態[i] ? CDTXMania.Instance.Coordinates.ImgGtPressingButtonB : CDTXMania.Instance.Coordinates.ImgGtButtonB; } else { rc = new Rectangle(); } if (txRGB != null) { int y = C演奏判定ライン座標共通.n演奏RGBボタンY座標(inst); if (CDTXMania.Instance.ConfigIni.bReverse[inst]) { y -= rc.Height / 2; } txRGB.t2D描画(CDTXMania.Instance.Device, x, y, rc); } } } for (int i = 0; i < 6; ++i) { b押下状態[i] = false; } } return 0; } } }