코드 부분 넘겨도 됨. 별로 중요하진 않다.
이건 기존 함수 이다.
지옥의 8분기 + 벽 마다 그림자를 체크하는 방식.
도식화 하면 대충 이런 식인데, 검은색 영역이 겹치는 부분이고 이 부분을 중복으로 추가함. 이건 벽이 많아지면 많아질수록, 겹치는 횟수도 증가하고, 벽마다 전 범위를 다시 계산한다는 치명적인 단점이 있다.
즉, 벽이 많아지면 성능에 참사가 일어난다 이 말이다.
기존에 맵을 만들기 전에 사용하는 데에는 체감 성능 하락이 적었지만, 벽이 많아질 수록 성능이 급감한다는 단점이 있다. 검은 부분 중복이 ㅈㄴ 많아서 비효율적이기도 하고
새롭게 사용할 방식은 이 방식 임.
x축을 1증가시켜 감에 따라서, 대각선 최대 높이에서 아래로 내려가며, '보이는 부분만' 벽을 확인해가며 재귀적으로 처리하는 방식임.
그림이 조금 더 복잡해서, 더 안 좋은거 아니야? 싶을 수 있는데, 이 방식은 절대로 중복시야가 생기지 않는다. 범위 자체도 8분할 할 뿐 아니라, 흰 부분은 고려조차 안 한다는 점에서 매우 효율적임.
코드 길이가 가독성을 보장하지는 않지만, 뭐 코드 길이도 짧아지고, 8분할된 영역을 하나의 로직으로 처리하니까, 유지보수하기는 훨씬 나을듯?
성능은 말할것도 없고...
Gosu