Ejemplo n.º 1
0
    private void Recalculate()
    {
        var path = Solver.FindPath((int)transform.position.y + 3, (int)transform.position.x + 3, (int)Player.transform.position.y + 3, (int)Player.transform.position.x + 3);

        if (path == null)
        {
            Debug.Log("no path");
            return;
        }
        var x = (int)transform.position.x + 3;
        var y = (int)transform.position.y + 3;

        var squares = new List <Vector2>();

        for (var i = 0; i < path.GetLength(0); i++)
        {
            for (var j = 0; j < path.GetLength(1); j++)
            {
                if (path[i, j] == 100)
                {
                    squares.Add(new Vector2(i, j));
                }
            }
        }

        var posV             = new Vector2(transform.position.x, transform.position.z);
        var squaresAvailable = squares.Where(v => Vector2.Distance(v, posV) >= 0.9).OrderBy(v => Vector2.Distance(v, posV)).ToList();

        Debug.Log(string.Join(", ", squaresAvailable.Select(s => s.ToString()).ToArray()));
        _nextSquare = squaresAvailable.First();
        Debug.Log(_nextSquare);
    }
Ejemplo n.º 2
0
    private bool HasPathTo(Vector2 from, Vector2 to)
    {
        var path = _mazeSolver.FindPath((int)from.y, (int)from.x, (int)to.y, (int)to.x);

        return(path == null);
    }