コード例 #1
0
    void AddToChunk(int x, int z, HexCell cell)
    {
        int chunkX = x / HexMetrics.chunkWidth;
        int chunkZ = z / HexMetrics.chunkHeight;

        HexGridChunk chunk  = chunks[chunkX + chunkZ * chunkCountX];
        int          localX = x - (chunkX * HexMetrics.chunkWidth);
        int          localZ = z - (chunkZ * HexMetrics.chunkHeight);

        chunk.AddCell(localX + localZ * HexMetrics.chunkWidth, cell);
    }
コード例 #2
0
    void AddCellToChunk(int x, int z, HexCell cell)
    {
        int          chunkX = x / HexMetrics.chunkSizeX;
        int          chunkZ = z / HexMetrics.chunkSizeZ;
        HexGridChunk chunk  = chunks[chunkX + chunkZ * chunkCountX];

        int localX = x - chunkX * HexMetrics.chunkSizeX;
        int localZ = z - chunkZ * HexMetrics.chunkSizeZ;

        chunk.AddCell(localX + localZ * HexMetrics.chunkSizeX, cell);
    }
コード例 #3
0
    private void AddCellToChunk(int x, int z, HexCell cell)
    {
        int          chunkX = x / HexMetrics.CHUNK_SIZE_X;
        int          chunkZ = z / HexMetrics.CHUNK_SIZE_Z;
        HexGridChunk chunk  = chunks[chunkX + chunkZ * chunkCountX];

        int localX = x - chunkX * HexMetrics.CHUNK_SIZE_X;
        int localZ = z - chunkZ * HexMetrics.CHUNK_SIZE_Z;

        chunk.AddCell(localX + localZ * HexMetrics.CHUNK_SIZE_X, cell);
    }
コード例 #4
0
    void AddCellToChunk(int x, int z, HexCell cell)
    {
        int          chunkX = x / HexMetrics.chunkSizeX;//делением нацело находим координаты нужного чанка
        int          chunkZ = z / HexMetrics.chunkSizeZ;
        HexGridChunk chunk  = chunks[chunkX + chunkZ * chunkCountX];

        int localX = x - chunkX * HexMetrics.chunkSizeX;//нахождение локальных координат внутри конкретного чанка
        int localZ = z - chunkZ * HexMetrics.chunkSizeZ;

        chunk.AddCell(localX + localZ * HexMetrics.chunkSizeX, cell);
    }
コード例 #5
0
    void AddCellToChunk(int x, int y, HexCell cell)
    {
        int          chunkX = x / HexMetrics.chunkSizeX;
        int          chunkY = y / HexMetrics.chunkSizeY;
        HexGridChunk chunk  = chunks [chunkX + chunkY * chunkCountX];

        int localX = x - chunkX * HexMetrics.chunkSizeX;
        int localY = y - chunkY * HexMetrics.chunkSizeY;

        chunk.AddCell(localX + localY * HexMetrics.chunkSizeX, cell);
    }
コード例 #6
0
ファイル: HexGrid.cs プロジェクト: JackeyZ/HexMap
    /// <summary>
    /// 把六边形添加到对应的网格块下
    /// </summary>
    /// <param name="x"></param>
    /// <param name="z"></param>
    /// <param name="cell"></param>
    void AddCellToChunk(int x, int z, HexCell cell)
    {
        // 计算出这个六边形属于哪个网格块
        int          chunkX = x / HexMetrics.chunkSizeX;
        int          chunkZ = z / HexMetrics.chunkSizeZ;
        HexGridChunk chunk  = chunks[chunkX + chunkZ * chunkCountX];

        // 计算出这个六边形是该网格块中的第几个
        int localX = x - chunkX * HexMetrics.chunkSizeX;
        int localZ = z - chunkZ * HexMetrics.chunkSizeZ;

        chunk.AddCell(localX + localZ * HexMetrics.chunkSizeX, cell);
    }
コード例 #7
0
    private void AddCellToChunk(int x, int z, HexCell hexCell)
    {
        int chunkX = x / HexMetrics.ChunkSizeX;
        int chunkZ = z / HexMetrics.ChunkSizeZ;

        int index = (chunkZ * m_chunkCountX) + chunkX;

        HexGridChunk chunk = m_gridChunks[index];

        int localX = x - chunkX * HexMetrics.ChunkSizeX;
        int localZ = z - chunkZ * HexMetrics.ChunkSizeZ;

        chunk.AddCell((localZ * HexMetrics.ChunkSizeX) + localX, hexCell);
    }
コード例 #8
0
    /// <summary>
    /// 通过cell在数组中的坐标计算后,将其分配到对应的chunk中
    /// </summary>
    /// <param name="x">cell在整体数组中的横坐标</param>
    /// <param name="z">cell在整体数组中的纵坐标</param>
    /// <param name="cell">cell自身的实例</param>
    private void AddCellToChunk(int x, int z, HexCell cell)
    {
        //通过cell整体数组的横纵坐标,计算出cell属于哪个chunk
        int chunkX = x / HexMetrics.chunkSizeX;
        int chunkZ = z / HexMetrics.chunkSizeZ;

        //通过计算得到的坐标,获取对应chunk的实例
        HexGridChunk chunk = chunks[chunkX + chunkZ * chunkCountX];

        //通过cell整体数组坐标,计算出其在对应chunk数组中的下标
        int localX = x - chunkX * HexMetrics.chunkSizeX;
        int localZ = z - chunkZ * HexMetrics.chunkSizeZ;

        //得到下标后,将cell实例添加到对应chunk的数组中
        chunk.AddCell(localX + localZ * HexMetrics.chunkSizeX, cell);
    }
コード例 #9
0
ファイル: HexGrid.cs プロジェクト: zhenyao2008/SLGMap
    void CellToChunk(int x, int z, HexCell cell)
    {
        int chunkX = x / width;
        int chunkZ = z / height;

        HexGridChunk tmpChunk = chunks[chunkZ * chunkCountX + chunkX];

        int cellOfChunkX = x - x / width * width;
        int cellOfChunkZ = z - z / height * height;

        if (cellOfChunkZ * width + cellOfChunkX == 0)
        {
            tmpChunk.transform.position = cell.transform.position;
        }
        tmpChunk.AddCell(cellOfChunkZ * width + cellOfChunkX, cell);
        cell.SetParentChunk(tmpChunk);
    }
コード例 #10
0
    /// <summary>
    /// 添加单元到地图块
    /// </summary>
    /// <param name="chunkId">地图块编号</param>
    /// <param name="chunkIndex">地图块索引</param>
    /// <param name="cellIndex">单元索引</param>
    /// <param name="cell">单元</param>
    public void AddCellToChunk(int chunkId, int chunkIndex, int cellIndex, Entity cell)
    {
        HexGridChunk chunk = chunks[chunkId];

        chunk.AddCell(chunkIndex, cellIndex, cell);
    }