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 sur détection de collision de jeu
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.
Pour aller plus loin
Vous avez repéré une information dépassée ? Signaler une correction