Le cours original a été publié sur le Site du Zéro par fvirtman. Tous les crédits lui reviennent.
Vous programmez un jeu vidéo, et vous vous intéressez aux collisions d’objets. Est-ce-que mon personnage touche un ennemi ? Est-ce-qu’il touche le sol ? Est-ce-que mon curseur de souris, un viseur, touche un ennemi ? Tout ceci, ce sont des tests de collision. Les collisions sont un aspect fondamental de tout jeu d’action ou d’animation en général.
Nous considèrerons une ou plusieurs fonctions Collision qui prendront en paramètre 2 objets, ou un objet et un monde fait de sols et de murs. Et ces fonctions renverront simplement un booléen, ayant donc pour valeur oui ou non, selon si ça touche ou non.
Toute la gestion des collisions s’appuiera sur ces fonctions. Selon votre jeu, selon vos besoins, les fonctions de collisions seront différentes, mais renverront toujours « oui » ou « non ».
Comment implémenter ces fonctions de collision en fonction de vos besoins ? C’est la raison d’être de ce tutoriel, qui vous présentera plusieurs méthodes. Les quelques fonctions d’exemple qui illustreront les différents cas seront codées en C, cependant facilement transposables dans d’autres langages.
Collisions en 2D
-
Formes simples
-
Formes plus complexes
-
Collisions au pixel près
-
Décor
-
Partitionnement
-
Sprites enrichis
-
Collisions spécifiques