OSDN Git Service

Merge branch 'feature/37178_プロジェクトとソリューションファイルの英語化' into develop
[dtxmania/dtxmania.git] / DTXMania / コード / ステージ / 07.演奏 / CWailingChip.cs
diff --git a/DTXMania/コード/ステージ/07.演奏/CWailingChip.cs b/DTXMania/コード/ステージ/07.演奏/CWailingChip.cs
new file mode 100644 (file)
index 0000000..7fb7abc
--- /dev/null
@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Diagnostics;
+using System.Drawing;
+using FDK;
+
+namespace DTXMania
+{
+       /// <summary>
+       /// Wailingチップの座標計算と描画を行う基底クラス
+       /// </summary>
+       public class CWailingChip共通
+       {
+               /// <summary>
+               /// コンストラクタ
+               /// </summary>
+               public CWailingChip共通()
+               {
+               }
+
+               /// <summary>
+               /// 描画処理 (引数が多いのは追々何とかする)
+               /// </summary>
+               /// <param name="pChip"></param>
+               /// <param name="txチップ"></param>
+               /// <param name="演奏判定ライン座標"></param>
+               /// <param name="ctWailingチップ模様アニメ"></param>
+               internal void t進行描画_チップ_ウェイリング(ref CChip pChip, ref CTexture txチップGB, ref CCounter ctWailingチップ模様アニメ)
+               {
+                       if (CDTXMania.Instance.ConfigIni.bGuitar有効)
+                       {
+                               if (!pChip.bHit && pChip.b可視)
+                               {
+                                       if (txチップGB != null)
+                                       {
+                                               txチップGB.n透明度 = pChip.n透明度;
+                                       }
+
+                                       EPart gb = pChip.bGuitar可視チップ_Wailing含む ? EPart.Guitar : EPart.Bass;
+
+                                       int x = CDTXMania.Instance.ConfigIni.GetLaneX(gb == EPart.Guitar ? ELane.GtW : ELane.BsW)
+                                                       + (CDTXMania.Instance.ConfigIni.GetLaneW(gb == EPart.Guitar ? ELane.GtW : ELane.BsW)
+                                                       - CDTXMania.Instance.Coordinates.ImgGtWailingChip.W) / 2;
+
+                                       int y = C演奏判定ライン座標共通.n判定ラインY座標(gb);
+
+                                       if (CDTXMania.Instance.ConfigIni.bReverse[gb])
+                                       {
+                                               y = y - (int)(pChip.nバーからの距離dot[gb]);
+                                       }
+                                       else
+                                       {
+                                               y = y + (int)(pChip.nバーからの距離dot[gb]);
+                                       }
+
+                                       int numA = (int)(26 * Scale.Y);                 // wailing chipの高さの半分
+                                       int showRangeY1 = SampleFramework.GameWindowSize.Height;
+                                       int numB = y - (int)(0x39 * Scale.Y);
+                                       int numC = 0;
+                                       if ((numB < (showRangeY1 + numA)) && (numB > -numA))
+                                       {
+                                               int c = ctWailingチップ模様アニメ.n現在の値 % CDTXMania.Instance.Coordinates.ImgGtCountWailingChip;
+                                               Rectangle rect = CDTXMania.Instance.Coordinates.ImgGtWailingChip.ApplyCounterX(c, 0);
+                                               txチップGB.t2D描画(
+                                                               CDTXMania.Instance.Device,
+                                                               x,
+                                                               ((y - numA) + numC),
+                                                               rect
+                                                       );
+                                       }
+                               }
+                               return;
+                       }
+                       pChip.bHit = true;
+               }
+       }
+}