2014-09-17 8 views
3

Je suis en train de remplacer ma bibliothèque Box2D actuelle (box2dweb.js) avec Bibliothèque LiquidFun de Google.Est-ce que b2DebugDraw et b2ContactListener ont été remplacés dans liquidfun.js?

La principale différence semble être ils ont placé tous les b2 # ClassName # classes dans la portée globale au lieu de les garder modulaire (dans un espace de noms Box2D.* comme box2dweb a fait).

mais il semble aussi comme ils ont omis quelques b2 # ClassName #, dont deux que j'utilisais de la version Box2dWeb.js:

  • b2DebugDraw, et;
  • b2ContactListener;

Sont-ils dépréciés/pas complètement implémentés/oubliés?

+0

En ce qui concerne b2DebugDraw, je commence à penser qu'il nous a laissé de mettre en œuvre (basé sur [ce] (https://github.com/google/liquidfun/blob/4c49f1b3b17ce40fa1a29671789ba580897a0926/liquidfun/Box2D/Box2D/Documentation/Programmers -Guide/Chapter13_Debug_Drawing.md)). Mais la documentation ne fait aucune mention de b2ContactListener étant déprécié (au moins que je pourrais trouver). Si vous avez d'autres indices, n'hésitez pas à partager, car j'essaie de résoudre le même mystère. – snapfractalpop

+0

J'ai (enfin) ajouté la balise nouvellement créée à votre question, et retiré la balise frameworks, qui semblait la moins pertinente. – Magnilex

+0

@Magnilex - Excellent! Il n'est jamais trop tard :) merci beaucoup pour cela. – bigp

Répondre

1

définissent simplement l'auditeur comme un objet de fonctions, comme ceci:

var listener = { 
    BeginContactBody: function(contact) { 
     console.log(contact.GetFixtureA()); 
    }, 
    EndContactBody: function(contact) { 
     console.log(contact.GetFixtureA()); 
    }, 
    PostSolve: function(contact, impulse) { 

    }, 
    PreSolve: function(contact, oldManifold) { 

    } 
} 
world.SetContactListener(listener); 

regardant https://github.com/google/liquidfun/blob/master/liquidfun/Box2D/lfjs/jsBindings/Dynamics/b2World.js m'a aidé à résoudre ce problème, donc si vous avez un autre C++ -> javascript problèmes de traduction, qui est un bon point de départ .

Questions connexes