나는 일종의 행동 트리 솔루션으로 이것을 할 것입니다-당신은 목표로 향하고 A *를 막고있는 모든 장애물을 기록하십시오. 실패하면 해당 장애물을 극복하는 데 도움이되는 객체가 있는지 확인합니다 (이 경우 해당 객체의 경로). 반복. 이것은 에이전트가 목표를 향한 길을 가고 도구 사용에 대한 아이디어를 얻기 전에 실패해야한다는 것을 의미합니다. 특히 모든 타일을 검사해야하는 거대한 타일이있는 경우 시간이 걸릴 수 있습니다. 상담원이 문제를 해결하는 방법에 대해 생각하는 데 시간이 걸리는 것처럼 보이지 않을 수 있습니다.
그러나 실제 하드 코어 솔루션을 상상할 수 있습니다. 경로 찾기 그리드에 다른 치수를 추가하십시오. 따라서 2D 맵의 경우 경로 찾기 그리드를 3D로 만듭니다. 이 간단한 예에서이 새로운 차원은 깊이가 2이지만 실제 게임에서는 빠르게 커질 것입니다.
z = 0에서는 정상적인 상황에서 지형을 매핑합니다. 즉, 워터 타일은 통과 할 수없는 것으로 간주됩니다.
z = 1에서는 갈퀴가있는 동안 지형을 그대로지도에 표시합니다. 즉, 물 타일은 걸을 수있는 것으로 간주됩니다 (예를 들어 벽 타일이있는 경우 단색으로 유지 될 수 있음).
경로 찾기는 x 및 y 차원에서 일반적인 A *입니다. 즉, 모든 그리드 셀은 인접 셀에 액세스 할 수있는 것으로 간주됩니다. 그러나 z 치수에서 A *는 퍼질 수 없습니다.
갈퀴가있는 곳을 제외하고. 레이크 객체는 경로 찾기 그리드에서 z = 0과 z = 1 사이의 개구부 역할을합니다.
이것은 A *가 z = 0에서 바깥쪽으로 채워지고 물을 치고 옵션이 부족하다는 것을 의미합니다. 그런 다음 레이크 타일을 통해 z = 1로 퍼지고 z = 1 (물이 걸을 수있는 곳)로 퍼집니다 목표를 향한 길을 찾으십시오. 결과적으로 망설임없이 NPC가 갈퀴로 이동 한 다음 최단 경로를 목표로 이동합니다.