+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using SharpDX;\r
-using FDK;\r
-\r
-using Point = System.Drawing.Point;\r
-\r
-namespace DTXMania\r
-{\r
- internal class CAct演奏チップファイアGB : CActivity\r
- {\r
- static ELane[] lanes = new ELane[] { ELane.GtR, ELane.GtG, ELane.GtB, ELane.BsR, ELane.BsG, ELane.BsB };\r
-\r
- public CAct演奏チップファイアGB()\r
- {\r
- base.b活性化してない = true;\r
- }\r
-\r
- public void Start(int nLane)\r
- {\r
- if (CDTXMania.Instance.ConfigIni.bGuitar有効)\r
- {\r
- if (0 <= nLane && nLane < 6)\r
- {\r
- EPart e楽器パート = (nLane < 3) ? EPart.Guitar : EPart.Bass;\r
- int x = CDTXMania.Instance.ConfigIni.GetLaneX(lanes[nLane])\r
- + CDTXMania.Instance.ConfigIni.GetLaneW(lanes[nLane]) / 2;\r
-\r
- int offsety = CDTXMania.Instance.Coordinates.ImgJudgeLine.H / 2;\r
- int y = C演奏判定ライン座標共通.n判定ラインY座標(e楽器パート, false, true);\r
- if (!CDTXMania.Instance.ConfigIni.bReverse[e楽器パート])\r
- {\r
- offsety -= offsety;\r
- }\r
- this.pt中央位置[nLane].X = x;\r
- this.pt中央位置[nLane].Y = y + offsety;\r
- // #24736 2011.2.17 yyagi: (0, 0x38, 4,..) -> (24, 0x38, 8) に変更 ギターチップの光り始めを早くするため\r
- this.ct進行[nLane].t開始(28, 56, 8, CDTXMania.Instance.Timer);\r
- }\r
- }\r
- }\r
-\r
- public override void On活性化()\r
- {\r
- for (int i = 0; i < 6; i++)\r
- {\r
- this.pt中央位置[i] = new Point(0, 0);\r
- this.ct進行[i] = new CCounter();\r
- }\r
- base.On活性化();\r
- }\r
-\r
- public override void On非活性化()\r
- {\r
- for (int i = 0; i < 6; i++)\r
- {\r
- this.ct進行[i] = null;\r
- }\r
- base.On非活性化();\r
- }\r
-\r
- public override void OnManagedリソースの作成()\r
- {\r
- if (!base.b活性化してない)\r
- {\r
- this.tx火花[0] = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay chip fire red.png"));\r
- if (this.tx火花[0] != null)\r
- {\r
- this.tx火花[0].b加算合成 = true;\r
- }\r
- this.tx火花[1] = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay chip fire green.png"));\r
- if (this.tx火花[1] != null)\r
- {\r
- this.tx火花[1].b加算合成 = true;\r
- }\r
- this.tx火花[2] = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenPlay chip fire blue.png"));\r
- if (this.tx火花[2] != null)\r
- {\r
- this.tx火花[2].b加算合成 = true;\r
- }\r
- base.OnManagedリソースの作成();\r
- }\r
- }\r
-\r
- public override void OnManagedリソースの解放()\r
- {\r
- if (!base.b活性化してない)\r
- {\r
- TextureFactory.tテクスチャの解放(ref this.tx火花[0]);\r
- TextureFactory.tテクスチャの解放(ref this.tx火花[1]);\r
- TextureFactory.tテクスチャの解放(ref this.tx火花[2]);\r
- base.OnManagedリソースの解放();\r
- }\r
- }\r
-\r
- public override int On進行描画()\r
- {\r
- if (b活性化してる && CDTXMania.Instance.ConfigIni.bGuitar有効 &&\r
- (CDTXMania.Instance.DTX.bチップがある.Guitar || CDTXMania.Instance.DTX.bチップがある.Bass))\r
- {\r
- for (int i = 0; i < 6; i++)\r
- {\r
- ct進行[i].t進行();\r
- if (ct進行[i].b終了値に達した)\r
- {\r
- ct進行[i].t停止();\r
- }\r
- }\r
- for (int j = 0; j < 6; j++)\r
- {\r
- if ((ct進行[j].n現在の経過時間ms != -1) && (tx火花[j % 3] != null))\r
- {\r
- float scale = (float)(3.0 * Math.Cos((Math.PI * (90.0 - (90.0 * (((double)ct進行[j].n現在の値) / 56.0)))) / 180.0));\r
- int x = (int)(pt中央位置[j].X) - ((int)((tx火花[j % 3].sz画像サイズ.Width * scale) / 2f));\r
- int y = (int)(pt中央位置[j].Y) - ((int)((tx火花[j % 3].sz画像サイズ.Height * scale) / 2f));\r
- tx火花[j % 3].n透明度 = (ct進行[j].n現在の値 < 0x1c) ? 0xff : (0xff - ((int)(255.0 * Math.Cos((Math.PI * (90.0 - (90.0 * (((double)(ct進行[j].n現在の値 - 0x1c)) / 28.0)))) / 180.0))));\r
- tx火花[j % 3].vc拡大縮小倍率 = new Vector3(scale, scale, 1f);\r
-\r
- tx火花[j % 3].t2D描画(CDTXMania.Instance.Device, x, y);\r
- }\r
- }\r
- }\r
- return 0;\r
- }\r
-\r
-\r
- // その他\r
-\r
- #region [ private ]\r
- private CCounter[] ct進行 = new CCounter[6];\r
- private Point[] pt中央位置 = new Point[6];\r
- private CTexture[] tx火花 = new CTexture[3];\r
- #endregion\r
- }\r
-}\r