# Utilisez le test de collision le plus simple qui correspond à la forme

> Choisissez une représentation de collision qui correspond à votre jeu, réduisez les vérifications de paires inutiles et diagnostiquez les objets traversant les obstacles.

- URL: https://oneshotgems.ai/fr/topics/game-collision-detection
- Catégorie: Pour les développeurs de jeux
- Type: Guide
- Mis à jour le: 5 octobre 2026

La détection de collision demande si les objets du jeu se chevauchent ou se croisent. La meilleure première représentation est généralement plus simple que l'illustration : des rectangles pour les cellules et les plates-formes de la grille, des cercles pour les acteurs ronds ou une petite collection de formes pour un obstacle irrégulier. Commencez par une question claire (toucher, entrer ou traverser) et choisissez un test qui y répond de manière cohérente. Les contrôles au pixel près ajoutent de la complexité et sont rarement nécessaires pour un jeu dont les règles sont déjà approximatives.

## Faites correspondre le test à la règle

Pour les rectangles alignés sur l'axe, comparez les étendues gauche, droite, supérieure et inférieure de chaque objet ; le chevauchement se produit lorsque les intervalles se croisent sur les deux axes. Pour les cercles, comparez l’entraxe avec la somme des rayons. Un jeu de grille peut éviter complètement la géométrie en vérifiant si deux acteurs revendiquent la même cellule.

Créez une petite scène de diagnostic avec deux formes colorées et affichez leurs zones de collision. Déplacez chaque paire pour tester le contact des bords, le chevauchement partiel et le passage tout près sans collision. Décidez si le contact des bords compte comme une collision et appliquez la même convention partout afin que le mouvement et le score ne se contredisent pas.

## Éviter de manquer les traversées rapides

Un objet rapide peut se trouver d’un côté d’une paroi mince lors d’une mise à jour et de l’autre côté lors de la suivante. Des étapes de simulation fixes plus petites peuvent aider, mais ne constituent pas la seule réponse : testez un segment balayé ou une cible étendue lorsque la plage de mouvement est grande par rapport à l'épaisseur de l'obstacle.

Avec beaucoup d’objets, écartez d’abord les paires qui ne peuvent pas être proches en utilisant une grille grossière ou des cellules spatiales, puis lancez les tests détaillés sur les paires candidates. Mesurez avant d’ajouter cette structure : pour quelques dizaines d’entités, des tests directs par paire sont parfois plus simples à maintenir et suffisants.

## Questions

**Les hitbox doivent-elles correspondre aux contours des sprites ?** En général, non. Un rectangle ou un cercle un peu tolérant peut rendre les commandes plus équitables. Affichez les hitboxes pendant le développement et ajustez-les selon la règle prévue et les attentes des joueurs.

**Canvas peut-il me dire si deux sprites entrent en collision ?** Canvas fournit des tests de chemin tels que isPointInPath() pour vérifier un point par rapport à un chemin tracé, mais il ne définit pas de règles générales de collision jeu-objet. Gardez la géométrie de simulation explicite et indépendante du dessin.

## Suivez votre curiosité

- [Utiliser delta time pour éviter les mouvements saccadés](https://oneshotgems.ai/fr/topics/delta-time-in-games): Appliquez le temps écoulé aux mouvements du jeu, choisissez une politique de rattrapage sécurisée et testez les mouvements à différentes fréquences de rafraîchissement et après les décrochages.
- [Créez une boucle de jeu sur navigateur fiable](https://oneshotgems.ai/fr/topics/browser-game-loop): Structurez les mises à jour des jeux par navigateur et dessinez autour des images d’animation sans lier la vitesse de simulation au taux de rafraîchissement de l’affichage d’un joueur.
- [Utiliser un pas de temps fixe pour la physique du jeu](https://oneshotgems.ai/fr/topics/fixed-timestep-game-physics): Séparez les mises à jour physiques du rendu avec une étape de simulation fixe, un travail de rattrapage limité et des tests de décrochage et de collision.

## Pour aller plus loin

- [MDN : Canvas isPointInPath()](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/isPointInPath)

---
Page canonique: https://oneshotgems.ai/fr/topics/game-collision-detection
