diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs index c633323c..bc5e606f 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs @@ -191,12 +191,55 @@ public class MapManager : Singleton yield return StartCoroutine(MapGenerateDefault()); // yield return StartCoroutine(MapGenerateDefault()); yield return StartCoroutine(SetUpMapUnity()); + yield return StartCoroutine(TransformMapUnity()); yield return StartCoroutine(UPMoveMapUnity()); yield return new WaitForSeconds(2); yield return StartCoroutine(EnemyGenerate()); yield return StartCoroutine(CompleteGenerate()); } + //场地坐标系转换(新转放行) + IEnumerator TransformMapUnity() + { + int x=0, y=0; + int count=1; + int currentOffset = 0; + int middeline = GameManager.Instance.X.Count / 2; + List lineOffsetList = new List(); + int lineOffsetListMark = 1; + for (int i = 0; i < GameManager.Instance.X.Count; i++) + { + if(count >=2) + { + count = 0; + if(i<= middeline) + { + currentOffset += 1; + + } + } + if(imiddeline ) + { + currentOffset = lineOffsetList[lineOffsetList.Count - lineOffsetListMark]; + lineOffsetListMark += 1; + } + + + for (int j = 0; j < GameManager.Instance.X[i].Y.Count; j++) + { + GameManager.Instance.X[i].Y[j].ResetLocation(j - currentOffset, y); + + } + x = 0; + y = i+1; + count += 1; + } + yield return null; + } //完成场地创建 IEnumerator CompleteGenerate() { diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs index adf4314c..41cf3056 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/MapUnity.cs @@ -122,7 +122,10 @@ public class MapUnity : MonoBehaviour // int index_6 = (xStart) * 22 + 1 + yStart; mapImages[5].sprite = (UnityEngine.Sprite)MapManager.Instance.mapImages_dol[xStart + 1][yStart];*/ } - + public void ResetLocation(int X,int Y) + { + locationX = X; locationY = Y; + } void Update() {