2012-02-29 4 views
1

J'ai un corps simplement Box2d avec une forme de polygone triangulaire et j'essaie de faire tourner le corps. Le code ci-dessous semble fonctionner; J'ai vérifié l'angle du corps avant et après et il a changé comme je l'espère. Le problème est que lorsque je dessine le polygone, les sommets restent inchangés. Est-ce ainsi que ça devrait être? Je me suis demandé si je devais appliquer une transformation aux sommets mais ne pouvais pas trouver un moyen de le faire.La rotation du corps Box2d ne fonctionne pas

Tous les pointeurs seraient très appréciés.

+0

comment dessinez-vous? – Andrew

+0

ouais, comment dessinez-vous? :) – iforce2d

Répondre

1

origine ma méthode de dessin a fait quelque chose comme ceci:

PolygonShape src = (PolygonShape) f.getShape(); 

    for (int i = 0; i < src.getVertexCount(); ++i) 
    { 
     Vec2 srcPt = src.getVertex(i); 

     // build polygon up of these points and draw ... 

J'ai réussi à le faire fonctionner maintenant en changeant le code ci-dessus à ceci:

PolygonShape src = (PolygonShape) f.getShape(); 

    Transform t = new Transform(); 
    t.set(new Vec2(0,0), body.getAngle()); 

    for (int i = 0; i < src.getVertexCount(); ++i) 
    { 
     Vec2 srcPt = Transform.mul(t, src.getVertex(i)); 

     // build polygon up of these points and draw ... 

semble fonctionner comme prévu.