보호되어 있는 글입니다.
리버싱/좀비고
A* Pathfinding은 3개의 값을 가지고 최적의 경로를 도출해낸다. G = 시작점으로부터 이동한 거리H = 도착지점까지의 휴리스틱 거리F = G + H 여기서, 자연스러운 이동을 위해 dx, dy도 고려한다. dx = 도착지점까지의 x차dy = 도착지점까지의 y차 Grid 맵이므로 대각선 이동은 연산하지 않는다. 휴리스틱 거리는 맨하튼 계산을 사용했다.int Heuristic(Node node, Node dist) { return Math.abs(node.x - dist.x) + Math.abs(node.y - dist.y);} 이동경로의 우선순위는 아래와 같이 산출한다. 1. F값이 제일 작은 노드2. F값이 같다면 H값이 더 작은 노드3. F, H값이 같다면 부모 노드의 dx, dy 중 더 ..

좀비고의 이동 알고리즘은 꽤 특이하다. 다음과 같은 맵에서 S -> E로 경로를 찾아간다고 가정하겠다. 보통의 A* 알고리즘을 사용한다면 경로는 이렇게 된다. ( 사진1 )하지만 좀비고에서는 이렇게 이동하지 않는다. best next path 우선순위 설정에 따라 달라질수도 있지만, 원하는 좀비 이동 로직은 나오지 않는다. ( 사진2 )좀비고에서는 아마 이렇게 이동할 것이다. 일반적인 A* 알고리즘으로는 재현이 안되는 이유는, 좀비고의 로직은 거리의 dx, dy값을 알고리즘에 반영해서 이동하기 때문이다. 사진1 과 사진2 는 이동에 드는 cost가 동일하다. 어느 경로를 택하더라도 이동에 걸리는 시간은 동일하므로, 사진2 의 경로가 선택되지 않는다. 동일한 cost가 드는 next nodes중에서 dx,..

1. 이동경로좀비고등학교의 인간 추적 알고리즘은 AStar path finding을 변형해서 사용하고 있다. 아래는 좀비고의 좀비 이동 회로다. 주의 깊게 보아야할건 좀비와 인간이 1칸 대각선 위치에 서있는 상황이다. 인간이 정지한 상태일 경우, 좀비는 x, y 좌표중 랜덤하게 우선순위가 선택되어 이동한다. 그러나 이동중인 상태일때는 다르다. 인간이 좀비보다 한칸 아래에 있을때는 x좌표 우선, 위에 있을때는 y좌표 우선으로 움직인다.나머지 위치에 있을 경우는 정지된 상태와 동일하다. 이를 통해 인간과 좀비가 쉽게 겹쳐서 죽어버리는걸 방지했다. 인게임에서 좀비로 널뛰기가 가능한 이유도 위와 같다. 2. 알고리즘 좀비의 이동 루틴은 아래와 같다. 1. 타겟 플레이어의 위치와 이동중인지 여부 가져오기2. 이..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.