Browse Source

bug修改

17600099689 8 months ago
parent
commit
1e17501e71
1 changed files with 43 additions and 0 deletions
  1. 43 0
      Assets/Game_Hyperspace/Script/Move.cs

+ 43 - 0
Assets/Game_Hyperspace/Script/Move.cs

@@ -332,6 +332,49 @@ public class RelativeHor : Move
             {
                 randomPos = gos[i].GetRandomPos(tempPos, 0.3f);
                 count--;
+                if (count <= 0)//ÕÒ²»µ½¾ÍÇî¾Ù
+                {
+                    var canvasSize = GeneratingTarget.gm.GetCanvasSize();
+                    var HWidth = canvasSize.x * 0.5f;
+                    var HHeight = canvasSize.y * 0.5f;
+                    var canUse = false;
+                    var newPos = Vector2.zero;
+                    for (int xPos = 0; xPos <= HWidth * 0.7f; xPos += 20)
+                    {
+                        for (int yPos = 0; yPos < HHeight * 0.7f; yPos += 15)
+                        {
+                            newPos.x = xPos; newPos.y = yPos;
+                            if (!IsUIBlock(gos[i], newPos, MoveType.RelativeHor, false) && !CheckOverLap(gos[i], newPos, MoveType.RelativeHor, gos.Count))
+                            {
+                                canUse = true;
+                                break;
+                            }
+                            newPos.x = xPos; newPos.y = -yPos;
+                            if (!IsUIBlock(gos[i], newPos, MoveType.RelativeHor, false) && !CheckOverLap(gos[i], newPos, MoveType.RelativeHor, gos.Count))
+                            {
+                                canUse = true;
+                                break;
+                            }
+                            newPos.x = -xPos; newPos.y = yPos;
+                            if (!IsUIBlock(gos[i], newPos, MoveType.RelativeHor, false) && !CheckOverLap(gos[i], newPos, MoveType.RelativeHor, gos.Count))
+                            {
+                                canUse = true;
+                                break;
+                            }
+                            newPos.x = -xPos; newPos.y = -yPos;
+                            if (!IsUIBlock(gos[i], newPos, MoveType.RelativeHor, false) && !CheckOverLap(gos[i], newPos, MoveType.RelativeHor, gos.Count))
+                            {
+                                canUse = true;
+                                break;
+                            }
+                        }
+                        if (canUse)
+                        {
+                            randomPos = newPos;
+                            break;
+                        }
+                    }
+                }
             }
             var go = gos[i];
             go.SetPos(randomPos);