A weirrrrd problem 나는 여기에 있습니다. 내 원수를위한 시야를 구현 했으므로 플레이어가 탐지 영역 (120도 전방에있는 원뿔) 안쪽으로 이동할 때 FOV 외부로 나갈 때까지 나쁜 사람에게 쫓기게됩니다.FOV 테스트는 infront AND 뒤에있는 플레이어를 감지합니다.
문제는 두 개의 원뿔을 앞쪽과 뒤쪽에서 볼 수 있기 때문에 앞쪽에있는 원뿔을 사용하고 싶을뿐입니다. 내가 생각할 수있는 건 내가 지나친 PI가 넘쳤다는거야? 나는 정말로 확신하지 못한다.
이 튜토리얼을 벡터 수학을 사용하여 구현하기 위해 사용했습니다. 점 제품 섹션. http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-2/
여기에 FOV 관련 코드가 있습니다.
Vector2 EnemyVecAngle = new Vector2((float)Math.Cos(EnemyAnimation.Angle), (float)Math.Sin(EnemyAnimation.Angle));
//normalize
Vector2 EnemyFacingN = Vector2.Normalize(EnemyVecAngle);
Vector2 EnemytoPlayer = Vector2.Normalize(player.Position - Position);
//check angle
float CheckAngle = (float)Math.Acos(Vector2.Dot(EnemyFacingN, EnemytoPlayer));
if ((CheckAngle >= 60) && (CheckAngle <= 120)
following = true;
이
이 TEH 플레이어를 향해 적의 얼굴을 만드는 문이 한 번 내가이 일을 위해 내가 -PI/2를 추가해야하는 이유 궁금하네요EnemyAnimation.Angle = (float)Math.PI/-2 + (float)Math.Atan2(Position.Y - player.Position.Y, Position.X - player.Position.X);
을 감지, 나는이 수 생각 문제와 관련이있다. 어떤 도움이라도 대단히 감사합니다!