Exemple #1
0
 /// <summary>
 /// 检测碰撞后返回对应的增量倍率
 /// </summary>
 /// <returns>The power multiplying by collision.</returns>
 /// <param name="coller">Coller.</param>
 public float GetPowerMultiplyingByCollision(RectTransform coller)
 {
     //白色1 黄色1.25 橙色1.5 红色2 倍
     if (coller != null || !valid)
     {
         Vector2 size1 = rectTrans.sizeDelta;
         Vector2 size2 = coller.sizeDelta;
         float   x1    = rectTrans.anchoredPosition.x - size1.x * 0.5f;
         float   x2    = coller.anchoredPosition.x - size2.x * 0.5f;
         if (Statics.Collision2D(x1, 0, size1.x, size1.y, x2, 0, size2.x, size2.y))
         {
             //红色
             Vector2 size3 = ItemRects[3].sizeDelta;
             float   x3    = rectTrans.anchoredPosition.x + ItemRects[3].anchoredPosition.x - size3.x * 0.5f;
             if (Statics.Collision2D(x3, 0, size3.x, size3.y, x2, 0, size2.x, size2.y))
             {
                 return(2);
             }
             //橙色
             size3 = ItemRects[2].sizeDelta;
             x3    = rectTrans.anchoredPosition.x + ItemRects[2].anchoredPosition.x - size3.x * 0.5f;
             if (Statics.Collision2D(x3, 0, size3.x, size3.y, x2, 0, size2.x, size2.y))
             {
                 return(1.5f);
             }
             //黄色
             size3 = ItemRects[1].sizeDelta;
             x3    = rectTrans.anchoredPosition.x + ItemRects[1].anchoredPosition.x - size3.x * 0.5f;
             if (Statics.Collision2D(x3, 0, size3.x, size3.y, x2, 0, size2.x, size2.y))
             {
                 return(1.25f);
             }
             //白色
             return(1);
         }
         else
         {
             return(0.5f);
         }
     }
     else
     {
         return(0.5f);
     }
 }