Example #1
0
    public IEnumerator AStarPathFindingNoBlocksTest()
    {
        float xStart = NodeMeasures.NODE_DIAMETER * 5;
        float yStart = NodeMeasures.NODE_DIAMETER * 5;

        float xEnd = NodeMeasures.NODE_DIAMETER * 1;
        float yEnd = NodeMeasures.NODE_DIAMETER * 2;

        // 5 * i i i i S
        // 4 * i * * * *
        // 3 * i * * * *
        // 2 * E * * * *
        // 1 * * * * * *
        // 0 * * * * * *
        // 0 0 1 2 3 4 5

        var start = new Vector2(xStart, yStart);
        var end   = new Vector2(xEnd, yEnd);

        Node startNode = currNodeGrid.GetNodeFromVector2(start);
        Node endNode   = currNodeGrid.GetNodeFromVector2(end);

        Vector2[]   path    = null;
        PathRequest request = new PathRequest("test", startNode, endNode, (Vector2[] _path, bool foundPath) =>
        {
            path = _path;
            Assert.IsTrue(foundPath);
        });

        currRequestManager.RequestPath(request);

        yield return(new WaitForSeconds(0.1f));

        Assert.NotNull(path);

        Assert.AreEqual(7, currNodeGrid.GetManhattanDistance(startNode, endNode));
        Assert.AreEqual(7, path.Length);
    }
Example #2
0
        public void ManhattanDistanceTest()
        {
            Vector2 vector_1 = new Vector2(NodeMeasures.NODE_DIAMETER * 5, NodeMeasures.NODE_DIAMETER * 5);
            Vector2 vector_2 = new Vector2(NodeMeasures.NODE_DIAMETER * 6, NodeMeasures.NODE_DIAMETER * 6);
            Vector2 vector_3 = new Vector2(NodeMeasures.NODE_DIAMETER * 5, NodeMeasures.NODE_DIAMETER * 9);

            Node node_1 = currNodeGrid.GetNodeFromVector2(vector_1 + (Vector2)currNodeGrid.transform.position);
            Node node_2 = currNodeGrid.GetNodeFromVector2(vector_2 + (Vector2)currNodeGrid.transform.position);
            Node node_3 = currNodeGrid.GetNodeFromVector2(vector_3 + (Vector2)currNodeGrid.transform.position);

            Assert.AreEqual(2, currNodeGrid.GetManhattanDistance(node_1, node_2));
            Assert.AreEqual(2, currNodeGrid.GetManhattanDistance(node_2, node_1));

            Assert.AreEqual(4, currNodeGrid.GetManhattanDistance(node_1, node_3));
            Assert.AreEqual(4, currNodeGrid.GetManhattanDistance(node_3, node_1));

            Assert.AreEqual(4, currNodeGrid.GetManhattanDistance(node_3, node_2));
            Assert.AreEqual(4, currNodeGrid.GetManhattanDistance(node_2, node_3));
        }