BePuyo 0.1 : index
Algorithme de detection des collisions

Cet algorithme est utilise lors du deplacement des Puyo pour qu'ils ne puissent rentrer en collision avec les puyo presents dans le PuyoField.
Son principe est tres simple : on superpose la matrice puyo a la matrice du PuyoField, si au moins une cellule est remplie sur les deux plans, c'est qu'il y a eu une collision.

On sait qu'une cellule est remplie sur les deux plans en multipliant leurs valeurs : une case vide a pour valeur 0, on obtient donc les resultats suivant pour toute cellule de coordonnes [x][y]:

En additionnant les produits pour toutes les cellules superposees, on obtient un nombre qui si il est positif signifie qu'il y a eu collision.
Lors du deplacement d'un Puyo, on effectue virtuellement le deplacement, et si il n'y a pas de collision, on l'effectue reelement.

retour a l'index de la documentation