본문 바로가기

로그라이크

FoV(Field of Vision)

로그라이크에서 - 플레이어 캐릭터 주변 환경을 표현과 같은 - 가장 중요한 몇몇 기능들은 현재 플레이어의 위치에서 맵 위의 각 오브젝트들의 가시성을 체크하는 것이 필요합니다. 이것을 'Field of Vision' 혹은 'Field of View'(이하 FoV)라고 하겠습니다.


타일 기반 2D 게임에서 FoV를 구현하기 위해 현재 플레이어가 위치하는 방만 다 보이는 것으로 판단한다던지의 여러가지 구현 방법이 있지만 'The Rougelike'에서는 플레이어 주변 일정 범위 내에 있는 가려지지 않은 오브젝트들을 가려내는 방식을 채택했습니다.

1. 맵 전체를 보이지 않는 영역으로 초기화 한다.

2. 플레이어 좌표를 기준으로 원을 그린다.

3. 플레이어에서 부터 원주를 이루는 하나의 점에 직선을 그린다.

4. 플레이어에서 부터 원주의 한 점까지 직선을 따라 가며 보이는 오브젝트로 표시한다. 단, 오브젝트가 발견 되면 더 이상의 탐색을 종료 한다.



유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!