Bonjour à tous !
Je suis sur le développement de mon jeu et j'ai un petit soucis avec les collisions. Je m'explique :
Je charge un fichier qui contient le nom,la largeur et longueur du tilesheet (grande image que je découpe en tableau). Puis, je crée dynamiquement 2 tableaux à 2 dymensions dynamiquement. L'un est un tableau d'entier (numéro image), et l'autre un tableau de booléen (case passable / non passable).
Lorsqu'un joueur / monstre ce déplace, il test si il change de case, si oui, il test si la case de destination est passable. Celon le cas il avance ou non.
Maintenant, ce que j'essaye de faire c'est de gérer les collisions entre les entités (monstres, personnage). Les monstres bougent d'eux même aléatoirement (bientot avec un algo de pathfind "A*"). Le personnage ce deplace celon l'evenement clavier.
J'ai fais que lorsque le joueur change de case, l'ancienne case devienne passable et la nouvelle non. Ce qui permet aux autres entités de passer ou non.
Mon problème est le suivant :
Lorsque une entité bouge, et qu'elle est sur une case, tout ce passe bien, mais le soucis c'est que les entités bougent en pixel et ma carte est en case. Du coup, lorsque le personnage ce trouve entre 2 cases, je n'arrive pas à blouqer les 2 en même temps mais surtout je n'arrive pas à garder en mémoire les cases qu'il à vérouillés. Car, il ce peut très bien qu'une case proche soit une case d'un objet (mur, obstacle...).
Je cherche donc un algo pour m'aider à résoudre ce problème. Auriez vous des idées concernant ce problème. Existe t'il une méthode existante pour ça?
Merci![]()
Partager