Пример #1
0
    private static bool canGoStraightLine(Vector2 src, Vector2 dest, LevelInfo mapInfo)
    {
        if (DONT_MOVE_GRID_BASED == false) return false;

        int minX = (int)Mathf.Min(src.x, dest.x);
        int maxX = (int)Mathf.Max(src.x, dest.x);
        int minY = (int)Mathf.Min(src.y, dest.y);
        int maxY = (int)Mathf.Max(src.y, dest.y);

        for( int i = minX; i <= maxX; i++) {
            for (int j = minY; j <= maxY; j++) {
                if (i == (int)src.x && j == (int)src.y) continue;
                if (i == (int)dest.x && j == (int)dest.y) continue;

                if (mapInfo.isOccupied(new Vector2(i, j))) return false;
            }
        }

        return true;
    }