Partage
  • Partager sur Facebook
  • Partager sur Twitter

Gerer les collisions sur un mur.

Je n'arrive pas à comprendre...

Sujet résolu
    21 juillet 2010 à 19:48:30

    Bonjour à tous;

    Je suis en train de m'entraîner à programmer des minis-jeu en canvas et javascript, j'ai donc cherché un moyen pour gérer les collisions d'une forme géométrique avec les murs, la technique que j'ai trouvé fonctionne très bien mais je n'arrive pas à comprendre comme cela fonctionne....

    // Mes variables.
    var largeur_zone = 500;
    var longueur_zone = 500;
    var DIMENSION_BALLE = 8;
    var VITESSE_BALLE = 1.1;
    var balleX = 100;
    var balleY 250;
    var dirBalleX = 1;
    var dirBalleY = -1;
    
    //On appelle la fonction actualiser tous les dixièmes de seconde. 
    setInterval(actualiser, 10);
    
    function actualiser()
    {
    
    //Conditions pour gérer les collisions.
    if ( (balleX + dirBalleX * VITESSE_BALLE) >  largeur_zone) dirBalleX = 1;
    else if ( (balleX + dirBalleX * VITESSE_BALLE) <  0) dirBalleX = 1;
    
    if ( (balleY + dirBalleY * VITESSE_BALLE) >  longueur_zone) dirBalleY = -1;
    else 
    {
        if ( (balleY + dirBalleY * VITESSE_BALLE) <  0) dirBalleY = 1;
    }
    
    //on gère la trajectoire de la balle.
    balleX += dirBalleX * VITESSE_BALLE;
    balleY += dirBalleY * VITESSE_BALLE;
    
    //On dessine la balle.
    ctx.beginPath();
    ctx.arc(balleX, balleY, DIMENSION_BALLE, 0, Math.PI*2, true);
    ctx.closePath();
    ctx.fill();
    }
    


    Je ne comprends pas les conditions:
    if ( (balleX + dirBalleX * VITESSE_BALLE) >  ZONE_JEU_WIDTH) dirBalleX = -1;
    else if ( (balleX + dirBalleX * VITESSE_BALLE) <  0) dirBalleX = 1;
    if ( (balleY + dirBalleY * VITESSE_BALLE) >  ZONE_JEU_HEIGHT) dirBalleY = -1;
    else {
        if ( (balleY + dirBalleY * VITESSE_BALLE) <  0) dirBalleY = 1;
    }
    


    L'auteur a lâché ça sans nous donner d'explications, donc si une âme charitable pouvait m'expliquer clairement tout le fonctionnement, même si cela peut paraître tous con^^.

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 juillet 2010 à 19:56:22

      Tu prends un crayon, un papier et tu fais un dessin.

      Ces jeunes j'te jure faut tout leur mâcher.
      • Partager sur Facebook
      • Partager sur Twitter
        21 juillet 2010 à 20:07:49

        Oui en effet nod merci du conseil même si j'ai ressenti une pointe d'énervement dans ton message... J'ai fais quelques shémas et j'ai tous de suite compris (en faite j'avais mal lu les conditions aussi :-° ) mais je peux comprendre ton agacement, j'aurai du me relire d'avantage avec de poster trop vite.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          21 juillet 2010 à 20:16:07

          non c'était ironique t'en fais pas ^^

          J'ai que 150% de ton age, je peux pas vraiment me la ramener non plus tu sais :D

          passe ton sujet en résolu si t'as plus de problème :)
          • Partager sur Facebook
          • Partager sur Twitter

          Gerer les collisions sur un mur.

          × 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