midas+son의 크리에이티브(creative) 이야기

맵에 대한 타일과 
길찾기 알고리즘으로
A*(에이스타) 알고리즘에 대해 공부를 했는데
가야될 경로와 
캐릭터를 아직 연결하는 과정에서 
원하는데로 움직이지 않아서 
제대로된 움직임이 나오지 않았습니다.
내일 다시 시도 해보겠습니다.

오늘 마무리된 작업은
기본적으로 캐릭은 맵의 중간에 위치하지만
움직여도 맵이 움직이는 것처럼 보이게 하고
캐릭이 화면 밖으로 나가지 않게 처리하였습니다.
맵 상하좌우 끝자락에 오면 
맵은 움직이지 않고 
캐릭 좌표가 움직이게 처리했습니다.

어떤 방식인지 자세히 얘기 하자면
맵 전체 이미지에 대해 캐릭의 좌표를 지정합니다.
맵에 대한 render(그리는 함수)는 
맵 전체를 그려버리면 리소스가 커지므로
맵 그리기 시작 좌표를
{캐릭 x좌표 - WINSIZEX / 2, 캐릭 y좌표 - WINSIZEY /2}
부터 시작하여
width = WINSIZEX 
height = WINSIZEY
만큼만 그려줍니다.

그러면 일단 캐릭을 움직여도 
맵은 캐릭 좌표 기준으로 상하좌우 반씩만 보이므로
중앙에 있는 것처럼 
이동하게 됩니다.
 
캐릭 x좌표 - WINSIZEX / 2 가 0보다 작아지면 
0으로 치환

캐릭 y좌표 - WINSIZEY / 2 가 0보다 작아지면 
0으로 치환

캐릭 x좌표 + WINSIZEX / 2 가 맵 가로사이즈 보다 커지면
맵가로사이즈 -  WINSIZEX 로 치환

캐릭 y좌표 + WINSIZEY / 2 가 맵 세로사이즈  보다 커지면
맵세로사이즈 -  WINSIZEY 로 치환

하여 맵 그리기 좌표 시작 하면 
맵이에서 윈도우 창에서 벗어 나지 않게
컨트롤 할수 있게 됩니다.

이를 카메라 라고 칭합니다.

영상은 내일자로 같이 보여드리는 걸로 하고 
오늘은 영상 없습니다.

* 내일 할 일 - A* 알고리즘(길찾기 알고리즘)대로 캐릭터 움직이기