Bonjour,
Dans le but d'acquérir de l'expérience et des notions je me suis lancer dans la programmation d'un jeu en C++ avec la librairie graphique SDL.
Je bute actuellement sur la notion des collision.
En réalité, mon jeu comporte un vaisseau spatial (capable de se mouvoir à l'infinie sur 360°) et des astéroïdes. Le but est de détruire les astéroïde (rien de bien révolutionnaire).
Le probleme qui se pose est de savoir comment gérer les collision entre les différents acteur ?
En l'occurrence, je cherche juste a traiter le cas de la collision entre le vaisseau et les astéroïdes.
J'ai dabord penser a ceci.
Lorsque le vaisseau bouge, je met a jour ses coordonné.
Puis je met a jour les coordonné des astéroïde et j'utilise une détection au pixel-perfect (grâce a la librairie SGE) afin de savoir si oui ou non il y a collision.
De prime abord, cette solution me paraissait satisfaisante.
Mais imaginons le cas suivant :
Le vaisseau se situe en un point quelconque. A 30 pixel a droite, il y a un astéroïde. Si mon vaisseau se déplace de 60 pixel vers la droite d'un coup, il va littéralement traverser l'astéroïde sans pour autant qu'une collision soit détecté.
J'ai imaginé plusieurs procédés, mais aucun ne me satisfait vraiment, et me parait trop complexe a mettre en œuvre.
C'est ici que je m'en remet a vous
Dans le cas d'un jeu en temps reel ou les vitesse son suffisamment élever pour que le cas cité dessus se produise, quel algorithme mettriez vous en place ?
Merci de votre lecture.
Partager