Frage

Ich habe ein Problem mit der Kollision zwischen 2 Körpern (eine Dynamik und eine statische). Nehmen wir an, ich habe Wand und Ball, ich habe den Filter gesetzt, wodurch der Ball durch die Wand gehen kann. Es funktioniert gut, solange ich Sprite mit Körper außerhalb des Wandkörpers erstelle. Das Problem erscheint, wenn ich Ball an derselben Position wie Wand erstelle, der Ball steckt oder hüpft oder seltsame Dinge tut. Ich glaube, es sollte keine Sache haben, wo ich den Körper erstelle, wenn Kollisionsfilter vorhanden sind. Hatte jemand ein ähnliches Problem?

War es hilfreich?

Lösung 2

Ich weiß immer noch nicht, warum das Problem erscheint, aber ich weiß, dass es passiert, wenn ich Boxbody und CircleBody erstelle. Ich habe dieses Problem mit Polygonbody anstelle von Boxbody gelöst. Hier ist mein Code, der Box aus dem Polygonkörper erstellt.

float a = this.getWidthScaled()*0.5f/32.0f;
float b = this.getHeightScaled()*0.5f/32.0f;
Vector2[] v = {new Vector2(-a,-b), 
               new Vector2(a,-b),
               new Vector2(a,b),
               new Vector2(-a,b)};
body = PhysicsFactory.createPolygonBody(pWorld, this, v, BodyType.DynamicBody, mFixtureDef);

Andere Tipps

Es ist ziemlich spät, aber ich habe ein ähnliches Problem mit der Maskierung aufgetreten

http://www.aurelienribon.com/blog/2011/07/box2d-tutorial-collision-filtering/

Prost.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top