2010-06-20 18 views
1

Je suis en train d'écrire un moteur de détection de collision pour mon jeu et j'ai quelques problèmes.Détection de collision 2D entre rectangles

En effet, depuis que j'ai plusieurs rectangle fixe et un en mouvement (le joueur), j'ai besoin de savoir quel côté du fixe a été abordé en premier par le joueur, pour le remplacer correctement.

Les rectangles fixes ne sont PAS dans une grille, ils peuvent donc être placés n'importe où sur la carte et ils peuvent avoir une taille différente. Ils ne sont pas tournés.

La classe de lecteur stocke son vecteur de direction.

Une idée?

KITE

Répondre

3

En bref:
Vous allez comparer les composants Y et X des rectangles de délimitation les uns aux autres pour vérifier la présence d'une collision. Si le haut (Y) du joueur est inférieur au bas d'un ennemi, vous n'avez plus besoin de vérifier car il n'est pas possible qu'ils entrent en collision. Si le côté droit (X) du joueur est inférieur au côté gauche de l'ennemi, il ne peut pas entrer en collision. Il serait utile de définir haut, droit, bas, gauche de chaque objet que vous avez l'intention de vérifier à l'intérieur de la classe. Cela vous permettra de savoir quel camp est touché. Cela devrait suffire à vous faire réfléchir et expérimenter.
Amusez-vous!

3

Le nom est la détection de collision "Axe-Alignés Bounding Box".

Maintenant que vous connaissez le nom, vous pouvez Google pour le reste.

0

merci à vous deux pour votre aide.

J'ai entendu parler de AABB, mais à première vue il ne semblait pas correspondre à mes besoins (puisque je ne l'ai pas bien compris).

Mais après avoir écrit tout sur papper, la solution que j'ai trouvée semblait être exactement la même chose que AABB!