lineOfSight
lineOfSight
> Funktioner
Kontrollerer sigtelinjen mellem start-cellen og slut-cellen og ignorerer enheder i entityToIgnore-arrayet.
Eksempel: if (lineOfSight(getCell(), getCell(enmy))
Algoritmen er beskrevet som følger:
- Tegn et segment mellem midten af de to testede celler.
- Angiv cellerne krydset af dette segment. En celle anses ikke for at være krydset, hvis segmentet rører dens kant, eller hvis det ignoreres.
- Hvis kun én af disse krydsede celler er en forhindring eller indeholder en enhed, er sigtelinjen blokeret, ellers er den klar.
Indstillinger
- start: Startcelle.
- slut: Målcelle.
- entityToIgnore (valgfrit): Entitet, der skal ignoreres, eller række af entiteter, der skal ignoreres, som standard ignoreres din enhed.
Feedback
- los: (boolesk)
- "sandt", hvis sigtelinjen er fri;
- 'falsk' ellers.
Demonstration
Klik på en celle for at få vist alle celler, der er i synslinje med den.