Collisions Avancés avec le Théorème des axes de séparation en love2d
Razerbladex43 Il y a 1 an Invité - En attente d'adhésion Premium2

J’ai eu pour projet de développer un jeu de tank en Top-View 2d avec des mouvements fluides en Lua/love2d. Donc mon tank est carré et mes obstacles aussi.
Petit problème : je fais tourner le tank dépendant de sa direction donc le test de collision AABB ne fonctionne pas pour ce cas-là. Après de nombreuses recherches, je découvre des librairies comme HC qui permettent de faire ce que je veux mais sont longs et compliqués.

Je trouve plus tard une documentation en anglais qui parle du SAT (Separating Axis Theorem) et je réussis à reproduire les explications en ligne de code malgré mon niveau 1ère scientifique (oui je fais la terminale à la fin des vacances ^^).
Donc maintenant j’arrive à gérer les collisions et à avancer dans mon jeu mais il m’a fallu 3 jours de recherches intensifs et ce dur labeur je veux vous l’éviter.

Par conséquent j’ai décidé de partager avec vous le code source et il y a un fichier main.lua pour la démo donc faites-en bonne utilisation et pondez-nous des jeux de vrais pros !
Je précise que ce système gère tous les polygones convexes et s’ils ne sont pas convexes vous pouvez décortiquer

Donc comme vous pouvez le voir un polygone est convexe si peu importe l’endroit où on trace une droite on a max 2 intersections sinon il est concave mais on peut le décomposer.

Avec ce système on peut décortiquer son personnage 2d en plusieurs polygones alors vous n’avez plus d’excuses pour vos collisions et pondez nous des jeux de vrai pro ^^.

Voici le lien vers le code source : https://www.dropbox.com/sh/jwetal2yxr8u8jy/AACTS-fx7RAK-1k0Y2Crp3wba?dl=0

Comments (2)

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.