12 commentaires sur “Box2d Web – Tuto 1 : un gros cube, un p’tit cube, …

  1. Pingback: Box2d Web – Tuto 2 : move your body ! | Game in Progress

  2. Merci pour tes tutos qui m’ont aidé, j’attends la suite. Par contre tu as fait une petite erreur dans celui-ci. Tu attribue l’userData à fixDef alors qu’il faut le faire à bodyDef.
    Bonne continuation.

    • Bonjour Vernier !

      Tout d’abord merci pour ton retour.

      Concernant ta remarque : et bien oui et non.

      Les classes Body et Fixture disposent toutes les deux d’un attribut userData. On peut donc attribuer une valeur userData au bodyDef ou au fixDef (rien n’empêche d’ailleurs de valoriser les deux pour un même objet 2D).
      D’un point de vue purement technique on ne peut donc pas parler d’une erreur.

      Par ailleurs, dans le prochain tuto nous verrons qu’il est possible d’assigner plusieurs fixtures à un même body. Dans ce cas précis il peut être utile de récupérer le userData d’une des fixtures plutôt que celui du body…

      Cependant ta remarque est pertinente et effectivement on aurait plutôt tendance à appliquer plus volontairement les userData au body. Simplement car c’est lui qui représente notre objet dans l’environnement 2D.

      Donc, les deux options sont possibles et c’est à chacun d’adapter ses choix en fonction de la situation rencontrée et de ses besoins.

      A bientôt 🙂

      • Merci pour tes précisions. Je débute la prog javascript donc je pensais bien que quelque chose avait du m’échapper. ^^

        J’ai un problème d’ailleurs dans l’organisation avec EaselJS et Box2D j’espère que tu pourra m’aider. Je crée un menu avec EaselJS , et lorsque je clic sur le bouton « jouer » , une partie de mon jeu se lance et donc mon world se crée ainsi que tous les bodies que j’ai créés. Jusque là aucun problème donc. Mais à la fin de ma partie je veux afficher le tableau des scores et proposer au joueur soit de recommencer la partie ou alors de retourner au menu.
        C’est là que ça se complique. Pour le tableau récapitulatif j’ai intégré un DOMElement à mon canvas grâce à EaselJS (j’ai choisi cette méthode parce que j’avais besoin de placer des inputs text dans ce tableau) mais lorsque je clic sur le bouton « Retour menu » ou « Rejouer » de ce DOMElement ( qui font chacun respectivement appel aux même fonctions que j’ai utilisées pour créer le menu et la nouvelle partie) absolument rien ne s’affiche. Je pense que je ne saisi pas comment « supprimer » le world du canvas(je précise que j’ai préalablement supprimé tous les body de la bodyList). Il semble s’afficher par dessus tout autre element.
        Bref c’est un peu confu j’aimerai vraiment que tu m’aide là dessus. Je veux pas pourrir ta rubrique commentaires donc tu peux me répondre sur mon mail si tu y a accès.

        Merci d’avance.

  3. Pingback: Box2d Web – Tuto 4 : jumping puzzle | Game in Progress

  4. sa marche pas aprés modif de :

    fixDef.shape.SetAsBox(dimensions.width / this.SCALE, dimensions.height / this.SCALE);
    fixDef.shape = new b2CircleShape(dimensions.radius / this.SCALE);
    bodyDef.position.x = x / this.SCALE;
    bodyDef.position.y = y / this.SCALE;

    et puis

    debugDraw.SetDrawScale(30.0);

    le lien vers le src ne marche plus non plus… sinon très bon tuto…

    • Bonjour,

      As-tu bien pensé à déclarer la « constante » SCALE » ?

      Box2dUtils = function() {
      this.SCALE = 30;
      }

      Sinon, le second lien vers les sources est réparé !

  5. Pingback: Box2d Web – Tuto 5 : liaisons dangereuses – Part 1 | Game in Progress

  6. Pingback: EaselJS – Tuto 1 : dessine-moi un menu | Game in Progress

  7. Pingback: Box2d Web & EaselJS – Tuto 1 : bouncing pigs | Game in Progress

Répondre à Benoît Annuler la réponse.