Prototype, phase 2

Les choses avancent bon train.  Suite à de nombreuses prises de têtes en raison de mon obstination à vouloir faire simple, c’est-à-dire écrire peu de code, en utilisant un système de collision « clé en main » à base de bounding boxes pour les bullets, je me suis décidé à faire autrement.

En relisant différents article ici et là (en particulier ce dernier), j’ai finalement implanté un système de collision inspiré des Axis-Aligned Bounding Boxes (ou AABB). Dans le cas des bullets des NPC, pour chacune d’elles, on définit une paire d’axes XZ minimum et une maximum. Le carré ainsi défini représente la zone de collision de l’objet, il ne reste plus qu’à comparer ces axes à ceux du AABB du joueur. Chaque bullet vérifie si son axe X min. est supérieur à l’axe X max. du joueur et si l’axe X min. du joueur est supérieur à l’axe X max de la bullet. Tant que cette condition est vrai, il n’y a pas intersection. Même chose pour l’axe Z. Lorsque les conditions sont inversées pour les deux axes, il y a intersection et donc collision entre la bullet et le joueur.

Voilà pour le principe, il me reste plus qu’à faire plus de tests et à affiner la taille des boxes le cas échéant mais ce système est fiable et simple en calcul.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s