lineOfSight
lineOfSight
> Funzioni
Controlla la linea di vista tra la cella start e la cella end, ignorando le entità nell'array entityToIgnore.
Esempio: if (lineOfSight(getCell(), getCell(enemy))
L'algoritmo è descritto come segue:
- Disegna un segmento tra i centri delle due celle testate.
- Elenca le celle attraversate da questo segmento. Una cella non è considerata attraversata se il segmento ne tocca il bordo o se viene ignorato.
- Se solo una di queste celle incrociate è un ostacolo o contiene un'entità, la linea di vista è bloccata, altrimenti è libera.
Impostazioni
- start: cella iniziale.
- end: cella di destinazione.
- entityToIgnore (facoltativo): entità da ignorare o matrice di entità da ignorare, per impostazione predefinita, la tua entità viene ignorata.
Feedback
- los: (booleano)
null se start o end non è une cella della mappa
true se la linea di vista è libera;
false altrimenti.
Dimostrazione
Fare clic su una cella per visualizzare tutte le celle in linea con essa.