Fermer2
BrunniLe 24/04/2009 à 20:45
Hello ^^
Pour un projet à l'école je fais une sorte de Worms mais avec des tanks (donc rectangulaires).
J'ai fait une ébauche pour donner une idée:
[URL=http://img10.imageshack.us/my.php?image=img032.png][IMG]http://img10.imageshack.us/img10/8373/img032.png[/IMG][/URL]
La map est de type "pixel": pas de formes ou quoi que ce soit, c'est une bête matrice.

J'ai défini mon char comme un rectangle pouvant être tourné d'un certain angle. J'aimerais maintenant gérer la physique avec cette map, et je vois mal comment faire (faut dire que je suis une daube en physique). Actuellement pour ma détection de collisions je fais:
Parcours le long des arêtes du rectangle dans un plan transformé par rapport au rectangle (translaté, roté), et test des pixels. En gros je parcours les bords du rectangle et je teste les pixels, quoi. Si j'en trouve un, cela signifie une collision, mais voilà: quand je rencontre un pixel, faut-il revenir sur la gauche, la droite, en haut? Difficile à dire puisqu'il n'y a pas de notion d'angle (à cause de la map pixel).

      ###
      ###
     ####
   x#####
#########
#########
#########

Je touche l'endroit marqué d'un x. Que faire? On pourrait aller à gauche ou à droite. Pas moyen de bêtement annuler le dernier mouvement étant donné qu'une rotation provoque un mouvement local des pixels, donc à moins de revenir systématiquement en arrière, que ce soit à une rotation ou à un mouvement (solution vraiment pas terrible qui rend super mal en plus...) je vois pas comment faire sad
Quelqu'un aurait des conseils? smile
Merci d'avance ^^