lineOfSight
lineOfSight
> 기능
entityToIgnore 배열의 항목을 무시하고 시작 셀과 끝 셀 사이의 시선을 확인합니다.
예제: if (lineOfSight(getCell(), getCell(enemy))
알고리즘은 다음과 같이 설명됩니다.
- 테스트된 두 셀의 중심 사이에 세그먼트를 그립니다.
- 이 세그먼트가 교차하는 셀을 나열합니다. 세그먼트가 가장자리에 닿거나 무시되는 경우 셀은 교차된 것으로 간주되지 않습니다.
- 이 교차된 셀 중 하나만 장애물이거나 개체가 포함되어 있으면 시야가 차단되고 그렇지 않으면 명확합니다.
설정
- 시작: 셀을 시작합니다.
- 종료: 대상 셀.
- entityToIgnore (선택 사항): 무시할 엔터티 또는 무시할 엔터티 배열, 기본적으로 엔터티는 무시됩니다.
피드백
- los: (부울)
- 시야가 확보되면 'true';
- 그렇지 않으면 '거짓'입니다.
데모
셀을 클릭하면 시야에 있는 모든 셀이 표시됩니다.