lineOfSight
lineOfSight
> Functies
Controleert de zichtlijn tussen de start-cel en de eind-cel, waarbij entiteiten in de entityToIgnore-array worden genegeerd.
Voorbeeld: if (lineOfSight(getCell(), getCell(vijand))
Het algoritme wordt als volgt beschreven:
- Teken een segment tussen de middelpunten van de twee geteste cellen.
- Maak een lijst van de cellen die door dit segment worden doorkruist. Een cel wordt niet als gekruist beschouwd als het segment de rand raakt of als het wordt genegeerd.
- Als slechts één van deze gekruiste cellen een obstakel is of een entiteit bevat, is de zichtlijn geblokkeerd, anders is het vrij.
Instellingen
- start: startcel.
- einde: doelcel.
- entityToIgnore (optioneel): te negeren entiteit of array van te negeren entiteiten, uw entiteit wordt standaard genegeerd.
Feedback
- los: (booleaans)
waar als de zichtlijn vrij is;
niet waar anders.
Demonstratie
Klik op een cel om alle cellen weer te geven die daarmee in zicht zijn.