C# XNA로 프로그래밍 된 내 작은 하향식, run-from-the-scary-ass-aliens 게임에서 나는 외계인과 벽이있다. 알아내는 데 어려움이있는 것은 외계인의 둥근 벽을 조종 할 수있는 방법입니다. 순간에 그들은 바보처럼 달려 들어서 미끄러 져 들어가고 상대방을 털어 내면 목표에이를 수 있습니다. problem http://imageshack.com/a/img829/6545/wsf4.jpgXNA - 벽 주위를 조종하다
내 질문은, 그래서 직접 : 외국인과 대상 사이에 벽이있는 경우
- 어떻게 확인합니까
여기에 문제의 내 전문 그림이야?
- 어떻게 최단 경로를 따라 그들을 조종합니까?
알고리즘/설명 환영, C# 보너스! 벽이 항상 수직 또는
수평으로, 나는 :)
필요한 경우 추가 정보를 제공 할 hapy 해요 - 외계인과 벽이 AABB 이 - : :)일부 같은 가정은 희망 계산을 쉽게하기
"A * 길 찾기 연합"을 검색하십시오. Google에 입력했을 때 첫 번째 결과는 유망한 것으로 보였습니다. –
@ChrisDunaway 내 게임은 그리드 기반이 아닌 연속적인 게임입니다. 이 해결책을 쓰지 않는다면 나는 세상에 알 고리즘을 위해서 그리드를 만들어야한다는 뜻인가요? 그렇다면 단순히 vector2의 좌표를 괜찮은 격자로 사용할 수 있습니까? 그리드가 얼마나 넓어야합니까? – IamPancakeMan
돌아가고 싶은 곳에서 자신의 웨이 포인트를 정의 할 수 있습니다 (많은 대형 게임은 포인트 대신에 영역을 사용합니다).A * 알고리즘을 사용하면 포인트/영역을 연결하여 플레이어의 경로를 만들 수 있습니다. 원래의 직선 경로에서 벽과 실제로 충돌하는지 확인하여 A * 경로 찾기와 일반 이동 사이의 기능을 분리 할 수 있습니다 (이 작업은 수행하지 않았지만 "raytracing"을 제안합니다). 따라서 플레이어 위치에서 목표 위치까지의 충돌을 감지하면 A *를 사용하여 가장 좋은 경로를 찾은 다음 다른 위치로 걸어 가면됩니다. –