lineOfSight
lineOfSight
> Funksjoner
Kontrollerer siktlinjen mellom start-cellen og slutt-cellen, og ignorerer enheter i entityToIgnore-matrisen.
Eksempel: if (lineOfSight(getCell(), getCell(fiende))
Algoritmen er beskrevet som følger:
- Tegn et segment mellom sentrene til de to cellene som ble testet.
- List opp cellene krysset av dette segmentet. En celle anses ikke som krysset hvis segmentet berører kanten, eller hvis det ignoreres.
- Hvis bare én av disse kryssende cellene er en hindring eller inneholder en enhet, er siktlinjen blokkert, ellers er det klart.
Innstillinger
- start: Startcelle.
- slutt: Målcelle.
- entityToIgnore (valgfritt): Entitet å ignorere eller en rekke enheter å ignorere, som standard ignoreres enheten din.
Tilbakemelding
- los: (boolsk)
- 'sant' hvis siktlinjen er klar;
- 'false' ellers.
Demonstrasjon
Klikk på en celle for å vise alle cellene som er i sikte med den.