Пример #1
0
Файл: UIMap.cs Проект: wjk17/WSA
        void GenTex2D()
        {
            tex = new Texture2D(rtSize.x, rtSize.y, format, flags);
            var texMapSize = texMap.Size();

            viewScale = Mathf.Max(0.4f, viewScale);
            var sampleSize = rtSize.Mul(1f / viewScale);

            viewMapOs = VectorTool.Clamp(viewMapOs, Vector2Int.zero, texMapSize - sampleSize);

            var pixels = texMap.GetPixels(viewMapOs, sampleSize);

            // resample
            for (int y = 0; y < rtSize.y; y++)
            {
                for (int x = 0; x < rtSize.x; x++)
                {
                    var ny = y / (float)(rtSize.y - 1);
                    var nx = x / (float)(rtSize.x - 1);
                    var i  = Mathf.RoundToInt(ny * (sampleSize.y - 1)) * sampleSize.x
                             + Mathf.RoundToInt(nx * (sampleSize.x - 1));
                    buffer[y * rtSize.x + x] = pixels[i];
                }
            }

            tex.SetPixels(Vector2Int.zero, rtSize, buffer);

            tex.MaskCorner(UI.I.texWindow[0], UI.I.corSizeWindow);

            tex.Apply(false);
        }
Пример #2
0
        void Go()
        {
            InitMap();
            InitGraph();
            PrintMap("Map");
            PrintGraph();

            var min = Vector2Int.zero;
            var max = size - Vector2Int.one;

            src = VectorTool.Clamp(src, min, max);
            dst = VectorTool.Clamp(dst, min, max);

            shortestep = PrintShortest();
            if (shortestep > 0)
            {
                PrintMap("Path(Steps " + shortestep + ")");
                PrintDepth();
                ClearMap();

                // 用宽度优先搜索验证
                //print("BFSearch: " + BFSearch());
                BFSearch();
                PrintDepth();
                Debug.Log((shortestep == close[dst.y, dst.x].G) ? "正确" : "错误");
            }
            else
            {
                Debug.Log("不可到达");
            }
        }