Estoy trabajando en un algoritmo de generación de terreno uniforme en C# y utilizando XNA para mostrar los datos.Objeto aleatorio no desechable en C#
Lo hago por lo que crea un nuevo punto a medio camino entre cada punto por iteración, a una altura aleatoria entre los dos. Esto funciona bien, y lo he configurado para que en la segunda iteración elija un punto aleatorio como en la diapositiva dos, en lugar de tratar de crear un nuevo punto entre los puntos que están en el mismo eje.
Lo que ocurre es que el bucle está utilizando el mismo valor aleatorio de la iteración anterior: http://i.stack.imgur.com/UmWr7.png
Esto, obviamente, no es lo ideal, ya que no es una generación aleatoria adecuada.
Si uso un Thread.Sleep(20)
después de cada generación punto de que funciona correctamente: http://i.stack.imgur.com/KziOg.png
yo no quiero tener que utilizar la solución Sleep
si es posible, ya que es muy lento, y me gustaría utilizar esto en tiempo real. Estoy bastante seguro de que esto tiene algo que ver con el recolector de basura C#.
Aquí es mi punto de obtener el código
Random r = new Random();
int x = (p1.X + p2.X)/2;
int y;
if (!initial)
y = r.Next(Math.Min(p1.Y, p2.Y), Math.Max(p1.Y, p2.Y));
else
y = r.Next(Math.Min(p1.Y, p2.Y) - Game1.screenHeight/2, Math.Max(p1.Y, p2.Y) + Game1.screenHeight/2);
return new Point(x, y);
Es la recolección de basura una parte de la cuestión?
¿Alguna sugerencia o solución para resolver esto?
Ahh no puedo creer que no haya visto esto. Muchísimas gracias por la ayuda. – FrenchyNZ