A* 길찾기 알고리즘 적용하는데 문제가 생겨서 질문 드립니다.
물체의 크기가 최소 그리드 크기의 정수배가 아닐 경우,
해당 타일이 'Walkable'한지 알아내고자 하는 알고리즘을 구현하고 싶습니다.
예를들어
그림처럼 A라는 물체는 도착지점으로 가려면 위쪽 벽 사이의 공간을 충분히 통과할 수 있으므로 위쪽 길을 택합니다
B라는 물체는 위쪽 벽 사이의 공간을 통과하지 못하므로 아래쪽을 택해야 하는데
저 주황색 타일 네 개를 B라는 물체가 지나갈 수 있는지 어떻게 판별하면 좋을까요?
처음엔 크기를 B 크기의 절반만큼씩 확장시켰을 때 겹치지 않으면 지나갈 수 있다고 생각했었는데,
위와 같은 상황에서는 벽이 옆으로 겹치면서도 지나갈 수 있는 공간이 있으므로 Walkable한게 됩니다
도대체 어떻게 하면 이걸 구현해 낼 수 있을까요...
ps갤로
이잉 알려죠...
미리 공간의 길이를 계산해두면 안됨? 벽은 고정되어 있으니 어차피 벽 사이의 거리가 바뀔일도 없고
벽도 그리드를 무시하고 물체 크기도 그리드를 무시하고 이동마저도 타일 중간을 안지나도 되면 그리드가 있는 이유가 뭐임
그렇긴 한데 길찾기를 위해서 레이캐스트 사용할 거 아니면 a*인데 그리드가 필요하지 않나요?
저러면 그냥 해당 유닛 크기에 맞는 그리드를 생성해 줘야 하는 거 아님?
타일에 흰색이 약간이라도 남아있다면 주황색으로 칠해버리면 안되나? 그럼 막짤도 주황색으로 이어진 길이 나오니까 walkable 하다고 판단하면 될듯.
A*는 그래프 알고리즘임. 지금 고민하는거랑 하나도 상관 없음
그리드(그리드 안씀)
인디 게임 개발 갤러리로