아이템과 적을 무작위로 (또는 가능한 무작위로) 배치하고 싶습니다. 현재 XNA의 Random클래스를 사용하여 X의 경우 800에서 Y의 경우 600 사이의 숫자를 생성합니다. 적은 중간 또는 아래쪽보다지도 상단을 향해 생성되는 것처럼 느낍니다. 나는 발전기를 시드하지 않을 것입니다. 아마도 고려해야 할 것입니다.
2D 그리드에서 임의의 적 배치를 향상시킬 수있는 다른 기술이 있습니까?
아이템과 적을 무작위로 (또는 가능한 무작위로) 배치하고 싶습니다. 현재 XNA의 Random클래스를 사용하여 X의 경우 800에서 Y의 경우 600 사이의 숫자를 생성합니다. 적은 중간 또는 아래쪽보다지도 상단을 향해 생성되는 것처럼 느낍니다. 나는 발전기를 시드하지 않을 것입니다. 아마도 고려해야 할 것입니다.
2D 그리드에서 임의의 적 배치를 향상시킬 수있는 다른 기술이 있습니까?
답변:
숀 하그리브스가 구조를 시작합니다!
http://blogs.msdn.com/b/shawnhar/archive/2009/12/17/the-psychology-of-randomness.aspx http://blogs.msdn.com/b/shawnhar/archive/2010/09 /10/links-5-charles-bloom-on-randomness.aspx
무작위 분포를 생각할 때 실제로 분포를 의미합니다. .Net의 랜덤은 무작위로 생각하고 있습니다. 당신은 그것을 밖으로 다른 무언가가 필요합니다. Poisson 디스크 샘플링 방법 amitp는 귀하의 요구에 완벽하게 보입니다.
다음 C # 코드는 균일 한 점 집합을 생성합니다.
Random rand = new Random(); // creates a new random number generator with a time-based seed
int X, Y;
for(int i = 0; i < numberOfPoints; i++)
{
X = rand.Next(800); // generates a random int between 0 and 799, inclusive
Y = rand.Next(600); // generates a random int between 0 and 599, inclusive
AddPointToSet(X,Y); // write this method however you want
}
매개 변수없이 Random () 생성자를 사용하면 생성 한 Random 객체가 시간을 기준으로 시드되므로 호출 사이에 시간이 거의없이 반복적으로 수행하지 않는 한 본질적으로 무작위가됩니다.