Je travaille sur un petit jeu de plateforme/combat 2D avec C++ et SDL, et j'ai beaucoup de problèmes avec la détection de collision. Les niveaux sont constitués d'un tableau de mosaïques, et j'utilise une boucle for pour passer par chacun (je sais que ce n'est peut-être pas la meilleure façon de le faire, et j'ai peut-être besoin d'aide pour ça aussi). Pour chaque côté du personnage, je le déplace d'un pixel dans cette direction et vérifie s'il y a une collision (je vérifie aussi si le personnage bouge dans cette direction). S'il y a une collision, je mets la vélocité à 0 et déplace le joueur vers le bord de la tuile. Mon problème est que si je vérifie d'abord les collisions horizontales et que le joueur se déplace verticalement à plus d'un pixel par image, il gère la collision horizontale et déplace le personnage sur le côté de la tuile même si la tuile est en dessous (ou ci-dessus) le personnage. Si je gère d'abord la collision verticale, elle fait la même chose, sauf qu'elle le fait pour l'axe horizontal.Problèmes de collision de plate-forme 2D avec les deux axes
Comment puis-je gérer les collisions sur les deux axes sans avoir ces problèmes? Y a-t-il une meilleure façon de gérer les collisions que la façon dont je le fais?
Vérifiez-vous vos collisions avant de déplacer votre personnage, ou après avoir bougé puis vérifié? –
Je le vérifie après avoir déplacé le personnage. – ausgat