Ejemplo n.º 1
0
        private static void Generate3x3River(Point start, Point end, float[,] heightMap)
        {
            List <Point> path = Riverfinder.FindPath(start, end, heightMap);

            foreach (Point point in path)
            {
                if (heightMap[point.X, point.Y] >= WaterCutoff)
                {
                    heightMap[point.X, point.Y] = WaterCutoff - 1;
                }
                if (heightMap[point.X + 1, point.Y] >= WaterCutoff)
                {
                    heightMap[point.X + 1, point.Y] = WaterCutoff - 1;
                }
                if (heightMap[point.X, point.Y + 1] >= WaterCutoff)
                {
                    heightMap[point.X, point.Y + 1] = WaterCutoff - 1;
                }
                if (heightMap[point.X - 1, point.Y] >= WaterCutoff)
                {
                    heightMap[point.X - 1, point.Y] = WaterCutoff - 1;
                }
                if (heightMap[point.X, point.Y - 1] >= WaterCutoff)
                {
                    heightMap[point.X, point.Y - 1] = WaterCutoff - 1;
                }
            }
        }
Ejemplo n.º 2
0
        private static void Generate5x5River(Point start, Point end, float[,] heightMap)
        {
            List <Point> path = Riverfinder.FindPath(start, end, heightMap);

            foreach (Point point in path)
            {
                for (int i = Math.Max(0, point.X - 2); i <= Math.Min(499, point.X + 2); i++)
                {
                    for (int j = Math.Max(0, point.Y - 2); j <= Math.Min(499, point.Y + 2); j++)
                    {
                        if (heightMap[i, j] >= WaterCutoff)
                        {
                            heightMap[i, j] = WaterCutoff - 1;
                        }
                    }
                }
            }
        }