저는 C# 및 XNA를 처음 사용합니다. 간단한 게임을 만들려고하는데 방향에 사용될 때 Vector2가 어떻게 작동하는지 잘 모르겠습니다. 임의의 방향을 생성하는 코드 줄이 있지만 두 자리는 왜 두 곳입니까? 두 번째 또는 첫 번째 X와 두 번째 Y의 X와 Y입니까? 아니면 각도에 관한 것입니까? 그것은 100보다 큰 숫자일까요?임의의 2D 방향 벡터 생성 이해
direction = new Vector2(Game1.rnd.Next(-100, 100), Game1.rnd.Next(-100, 100));
direction.Normalize();
랜덤 방향을 생성하는 방법은 시작 영역이 정사각형이기 때문에 대각선 방향을 따르는 것이 균일하지 않으며 소스 벡터가 0 일 경우 예외가 발생합니다 (Dervall이 언급 함. 귀하의 코드에서 1 - 40000 기회). 랜덤 앵글로 시작하여 방향을 생성하는 더 좋은 방법은 다음과 같습니다 : var angle = random.NextDouble() * Math.PI; var direction = new Vector2 ((float) Math.Cos (angle), (float) Math.Sin (angle));'. 정수가 아닌 부동 소수점을 생성하기 위해'Next'보다는'NextDouble'을 사용합니다. –
나는 이것이 늙은 엉뚱한 코멘트라는 것을 알고있다. 어쨌든 그것을 위해 갈 것이다 :)'random.NextDouble()'은 0과 1 사이의 값을 생성하고 이것을 생성하는'Math.PI'와 곱하지 않을 것이다. 호? 나는'Math.TooPi' (또는 동급)로 곱하면 전체 원을 생성 할 것이라고 가정 할 것인가? 내가 이걸 거꾸로 쓴다면 (그리고 다시 그런 오래된 질문이나 코멘트에 대해 논평 해 주셔서) 미안 하구나. :). – Tobbe