02-10-2008, 10:43 PM
Hum... J'ai pas le courage de coder ce soir, mais je pense que tu peux arranger ça en utilisant, au lieu de true et false, des entiers.
Dans ce cas, l'idée serait la suivante : tu as un tableau avec que des 0. Si un objet passe, on interromps le cycle récursif (comme dans mon exemple), mais en plus on remplit les cases autour de l'objet avec des 1. Et dans les tests, on remplace :
if(obstacle($i, $y_joueur) || $bloque)
par
if(obstacle($i, $y_joueur) || $carte_ombre[$i][$y_joueur] == 1 || $bloque)
Si le test est faux, on passe la case à 2.
Et dans ce cas :
- Une case avec 0 est une case qui est hors de portée de la vue du joueur
- Une case avec 1 est une case qui est à portée du joueur, mais masquée par un obstacle
- Une case avec 2 est visible par le joueur
Ca permet de nuancer un peu et de faire varier la forme des ombres.
Je sais pas si je suis très clair...
Dans ce cas, l'idée serait la suivante : tu as un tableau avec que des 0. Si un objet passe, on interromps le cycle récursif (comme dans mon exemple), mais en plus on remplit les cases autour de l'objet avec des 1. Et dans les tests, on remplace :
if(obstacle($i, $y_joueur) || $bloque)
par
if(obstacle($i, $y_joueur) || $carte_ombre[$i][$y_joueur] == 1 || $bloque)
Si le test est faux, on passe la case à 2.
Et dans ce cas :
- Une case avec 0 est une case qui est hors de portée de la vue du joueur
- Une case avec 1 est une case qui est à portée du joueur, mais masquée par un obstacle
- Une case avec 2 est visible par le joueur
Ca permet de nuancer un peu et de faire varier la forme des ombres.
Je sais pas si je suis très clair...