0
Ich versuche, einen kleinen Side Scroller für Android mit LibGdx Tiled und Box2D zu erstellen. Ich benutze Objekt-Layer, um die Kollision zwischen Spieler und der Welt zu bekommen. Das funktioniert gut, wenn ich Rectangles für die Objektlayer verwende. Aber wenn ich versuche, Polygone zu verwenden, funktioniert die Kollision nicht. Was mache ich falsch? (Sry für Rechtschreibfehler)LibGdX Tiled Map Box2d Kollision mit Polygon Map Objekt
Hier ist mein Code:
for(MapObject object : map.getLayers().get(5).getObjects()){
if(object instanceof RectangleMapObject) {
Rectangle rect = ((RectangleMapObject) object).getRectangle();
bdef.type = BodyDef.BodyType.StaticBody;
bdef.position.set((rect.getX() + rect.getWidth()/2)/AoF.PPM, (rect.getY() + rect.getHeight()/2)/AoF.PPM);
body = world.createBody(bdef);
shape.setAsBox(rect.getWidth()/2/AoF.PPM, rect.getHeight()/2/AoF.PPM);
fdef.shape = shape;
body.createFixture(fdef);
}
if(object instanceof PolygonMapObject){
float[] vertices = ((PolygonMapObject) object).getPolygon().getTransformedVertices();
float[] worldVertices = new float[vertices.length];
for (int i = 0; i < vertices.length; ++i) {
worldVertices[i] = vertices[i]/AoF.PPM;
}
shape.set(worldVertices);
bdef.type = BodyDef.BodyType.StaticBody;
body = world.createBody(bdef);
fdef.shape = shape;
body.createFixture(fdef);
}