示例#1
0
        private PathChunkArea GenerateAreaForLevelPathCell(LevelPathCell levelPathCell)
        {
            var area = new PathChunkArea();

            area.HorizontalChunkCount = _rng.RandiRange(_minChunkWidth, _maxChunkWidth);
            area.VerticalChunkCount   = _rng.RandiRange(_minChunkHeight, _maxChunkHeight);
            area.LevelPathCell        = levelPathCell;
            return(area);
        }
示例#2
0
 private void FillArea(PathChunkArea area)
 {
     for (int x = (int)area.ChunkOffset.x; x < area.ChunkOffset.x + area.HorizontalChunkCount; x++)
     {
         for (int y = (int)area.ChunkOffset.y; y < area.ChunkOffset.y + area.VerticalChunkCount; y++)
         {
             var chunkPos = new Vector2(x, y);
             FillChunk(chunkPos);
         }
     }
 }
示例#3
0
 private void AlignAreasY(PathChunkArea rootChunkArea, PathChunkArea toAlignChunkArea)
 {
     toAlignChunkArea.ChunkOffset.y  = rootChunkArea.ChunkOffset.y;
     toAlignChunkArea.ChunkOffset.y += _rng.RandiRange(-(toAlignChunkArea.VerticalChunkCount - 1), rootChunkArea.VerticalChunkCount - 1);
 }
示例#4
0
 private void AlignAreasX(PathChunkArea rootChunkArea, PathChunkArea toAlignChunkArea)
 {
     toAlignChunkArea.ChunkOffset.x  = rootChunkArea.ChunkOffset.x;
     toAlignChunkArea.ChunkOffset.x += _rng.RandiRange(-(toAlignChunkArea.HorizontalChunkCount - 1), rootChunkArea.HorizontalChunkCount - 1);
 }