Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SDL] Collisions

Encore un autre ...

    24 décembre 2006 à 16:19:46

    Salut les zéros ,

    voilà je sais que cela fait un autre sujet parmis les innombrables sujets sur les collisions mais je n'arrive toujours pas à résoudre mon problème :(

    Je souhaite tester si il y a une collision entre deux persos dont les positions sont : posE.x/posE.y et posA.x/posA.y , j'ai déjà essayé plusieurs solutions mais aucunes n'a marchée .

    Jespère que pourrez m'aider et je vous en remercie .
    • Partager sur Facebook
    • Partager sur Twitter
      24 décembre 2006 à 16:47:01

      Salut, en fait ton problème est assez facile à résoudre mathématiquement parlant, en revanche c'est la façon d'apprecier le problème qui peut être déconcertante.

      tu as deux surfaces positionées sur un espace bidimentionel normé qui est en fait la surface écran.

      Chaque surface est définie sur l'écran par une structure SDL_Rect contenant les champs de positions (x;y) et de dimensions de la surface (w;h).
      Pour savoir si deux surfaces Blitées sur l'écran sont en collision, il te faut comparer leur champs (x;y;w;h).

      Voici la condition :


      if((PositionSurface1.x >= PositionSurface2.x)&& (PositionSurface1.x+PositionSurface1.w <= PositionSurface2.x)&&
      (PositionSurface1.y <= PositionSurface2.y)&&
      (PositionSurface1.y+PositionSurface1.h >= PositionSurface2.y))
      {
      //Collision detectée !
      }



      Etudie cette condition en te demandant pourquoi je test ceci ect, essai de la modifier pour voir ce que cela donne ect... Et tu la comprendra.
      N'oublie pas, avec SDL l'origine de l'écran est en haut à gauche, et non pas en bas à gauche.

      A toi de jouer !... Heu programmer je veux dire :) .
      • Partager sur Facebook
      • Partager sur Twitter
        25 décembre 2006 à 16:33:26

        Bon, si t'as pas envie de créer toi meme une fonction collision, il y en a une deja toute prete : SDL_Collision.h Tu peux le trouver assez facilement sur internet(google et compagnie...).
        Dans cette "librairie", tu peux faire des detections de collisions par "pixel"(pixel transparent, remplis,...etc), par "surface"(si deux "boites" se touchent...),...
        c'est assez pratique comme librairie.
        • Partager sur Facebook
        • Partager sur Twitter

        [SDL] Collisions

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown