ChainShape chainShape = new ChainShape(); chainShape.createLoop(new Vector2[] {new Vector2(-10, 10), new Vector2(-10, 5), new Vector2(10, 5), new Vector2(10, 11),}); BodyDef chainBodyDef = new BodyDef(); chainBodyDef.type = BodyType.StaticBody; Body chainBody = world.createBody(chainBodyDef); chainBody.createFixture(chainShape, 0); chainShape.dispose();
int vertexCount = chain.getVertexCount(); for (int i = 0; i < vertexCount; i++) { chain.getVertex(i, vertices[i]); transform.mul(vertices[i]); drawSolidPolygon(vertices, vertexCount, color, chain.isLooped());
int vertexCount = chain.getVertexCount(); for (int i = 0; i < vertexCount; i++) { chain.getVertex(i, vertices[i]); transform.mul(vertices[i]);
public Body createRectBody(float x, float y, float width, float height) { x = x/scale; y = y/scale; width = width/scale; height = height/scale; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.StaticBody; def.position.set(x, y); Body body = world.createBody(def); ChainShape shape = new ChainShape(); float[] vertices = { 0, 0, 0, height, width, height, width, 0, 0, 0 }; shape.createChain(vertices); body.createFixture(shape, 1); shape.dispose(); return body; }
/** Returns the shape of this fixture */ public Shape getShape () { if (shape == null) { org.jbox2d.collision.shapes.Shape shape2 = fixture.getShape(); ShapeType type = shape2.getType(); if (type == ShapeType.CHAIN) shape = new ChainShape((org.jbox2d.collision.shapes.ChainShape)shape2); if (type == ShapeType.CIRCLE) shape = new CircleShape((org.jbox2d.collision.shapes.CircleShape)shape2); if (type == ShapeType.EDGE) shape = new EdgeShape((org.jbox2d.collision.shapes.EdgeShape)shape2); if (type == ShapeType.POLYGON) shape = new PolygonShape((org.jbox2d.collision.shapes.PolygonShape)shape2); } return shape; }
private Shape getPolyline(PolylineMapObject polylineObject) { float[] vertices = polylineObject.getPolyline().getTransformedVertices(); Vector2[] worldVertices = new Vector2[vertices.length / 2]; for (int i = 0; i < vertices.length / 2; ++i) { worldVertices[i] = new Vector2(); worldVertices[i].x = vertices[i * 2] / units; worldVertices[i].y = vertices[i * 2 + 1] / units; } ChainShape chain = new ChainShape(); chain.createChain(worldVertices); return chain; } }
/** Returns the shape of this fixture */ public Shape getShape () { if (shape == null) { long shapeAddr = jniGetShape(addr); if (shapeAddr == 0) throw new GdxRuntimeException("Null shape address!"); int type = Shape.jniGetType(shapeAddr); switch (type) { case 0: shape = new CircleShape(shapeAddr); break; case 1: shape = new EdgeShape(shapeAddr); break; case 2: shape = new PolygonShape(shapeAddr); break; case 3: shape = new ChainShape(shapeAddr); break; default: throw new GdxRuntimeException("Unknown shape type!"); } } return shape; }
int vertexCount = chain.getVertexCount(); for (int i = 0; i < vertexCount; i++) { chain.getVertex(i, vertices[i]); transform.mul(vertices[i]);
private void createChainShape() { ChainShape chainShape = new ChainShape(); chainShape.createLoop(new Vector2[] { new Vector2(.0f, .0f), new Vector2(SCENE_WIDTH, .0f), new Vector2(SCENE_WIDTH, 1.5f), new Vector2(6f, 1.5f), new Vector2(3, 5.0f), new Vector2(1.5f, 1.5f), new Vector2(0, 1.5f),}); BodyDef chainBodyDef = new BodyDef(); chainBodyDef.type = BodyType.StaticBody; chainBodyDef.position.set(.0f, .0f); Body chainBody = world.createBody(chainBodyDef); chainBody.createFixture(chainShape, 0); chainShape.dispose(); }
/** Returns the shape of this fixture */ public Shape getShape () { if (shape == null) { long shapeAddr = jniGetShape(addr); if (shapeAddr == 0) throw new GdxRuntimeException("Null shape address!"); int type = Shape.jniGetType(shapeAddr); switch (type) { case 0: shape = new CircleShape(shapeAddr); break; case 1: shape = new EdgeShape(shapeAddr); break; case 2: shape = new PolygonShape(shapeAddr); break; case 3: shape = new ChainShape(shapeAddr); break; default: throw new GdxRuntimeException("Unknown shape type!"); } } return shape; }
public Body createScreenBox(final Rectangle rect) { ChainShape shape = new ChainShape(); shape.createLoop(new Vector2[]{ new Vector2(rect.x, rect.y).scl(1 / Box2dObject.RADIO), new Vector2(rect.x + rect.width, rect.y).scl(1 / Box2dObject.RADIO), new Vector2(rect.x + rect.width, rect.y + rect.height).scl(1 / Box2dObject.RADIO), new Vector2(rect.x, rect.y + rect.height).scl(1 / Box2dObject.RADIO), }); final FixtureDef fixtureDef = new FixtureDef(); fixtureDef.isSensor = false; fixtureDef.shape = shape; BodyDef bodyDef = new BodyDef(); bodyDef.bullet = false; bodyDef.type = BodyType.StaticBody; bodyDef.linearDamping = 0f; Body body = PhysicalWorld.WORLD.createBody(bodyDef); body.createFixture(fixtureDef); shape.dispose(); return body; } }
private Body createSharpObject() { ChainShape chainShape = new ChainShape(); chainShape.createLoop(new Vector2[] { new Vector2(.0f, .375f), new Vector2(.125f, .125f), new Vector2(.375f, 0f), new Vector2(.125f, -.125f), new Vector2(0, -.375f), new Vector2(-.125f, -.125f), new Vector2(-.375f, 0f), new Vector2(-.125f, .125f),}); BodyDef chainBodyDef = new BodyDef(); chainBodyDef.type = BodyType.KinematicBody; chainBodyDef.bullet = true; chainBodyDef.position.set(SCENE_WIDTH*.5f, SCENE_HEIGHT*.5f); Body chainBody = world.createBody(chainBodyDef); chainBody.createFixture(chainShape, 0.8f); chainShape.dispose(); chainBody.setAwake(true); return chainBody; }
private void createGround() { ChainShape chainShape = new ChainShape(); chainShape.createLoop(new Vector2[] { new Vector2(.0f, .0f), new Vector2(SCENE_WIDTH, .0f), new Vector2(SCENE_WIDTH, 7f), new Vector2(SCENE_WIDTH-1f, 7f), new Vector2(SCENE_WIDTH-1f, 1.5f), new Vector2(1f, 1.5f), new Vector2(1f, 7f), new Vector2(0f, 7f),}); BodyDef chainBodyDef = new BodyDef(); chainBodyDef.type = BodyType.StaticBody; chainBodyDef.position.set(.0f, .0f); groundBody = world.createBody(chainBodyDef); FixtureDef groundFD = new FixtureDef(); groundFD.shape = chainShape; groundFD.density = 0; groundBody.createFixture(groundFD); groundBody.setUserData("Ground Body"); chainShape.dispose(); }
private void createGround() { ChainShape chainShape = new ChainShape(); chainShape.createLoop(new Vector2[] { new Vector2(.0f, .0f), new Vector2(WORLD_WIDTH, .0f), new Vector2(WORLD_WIDTH, 7f), new Vector2(WORLD_WIDTH-1f, 7f), new Vector2(WORLD_WIDTH-1f, 1.5f), new Vector2(1f, 1.5f), new Vector2(1f, 7f), new Vector2(0f, 7f),}); BodyDef chainBodyDef = new BodyDef(); chainBodyDef.type = BodyType.StaticBody; chainBodyDef.position.set(.0f, .0f); groundBody = world.createBody(chainBodyDef); FixtureDef groundFD = new FixtureDef(); groundFD.filter.categoryBits = CATEGORY_GROUND; groundFD.filter.maskBits = MASK_GROUND; groundFD.shape = chainShape; groundFD.density = 0; groundBody.createFixture(groundFD); chainShape.dispose(); }
private void createGround() { ChainShape chainShape = new ChainShape(); chainShape.createLoop(new Vector2[] { new Vector2(.0f, .0f), new Vector2(SCENE_WIDTH, .0f), new Vector2(SCENE_WIDTH, 7f), new Vector2(SCENE_WIDTH-1f, 7f), new Vector2(SCENE_WIDTH-1f, 1.5f), new Vector2(1f, 1.5f), new Vector2(1f, 7f), new Vector2(0f, 7f),}); BodyDef chainBodyDef = new BodyDef(); chainBodyDef.type = BodyType.StaticBody; chainBodyDef.position.set(.0f, .0f); groundBody = world.createBody(chainBodyDef); FixtureDef groundFD = new FixtureDef(); groundFD.shape = chainShape; groundFD.density = 0; groundBody.createFixture(groundFD); groundBody.setUserData("Ground Body"); chainShape.dispose(); }
private void createGround() { ChainShape chainShape = new ChainShape(); chainShape.createLoop(new Vector2[] { new Vector2(.0f, .0f), new Vector2(SCENE_WIDTH, .0f), new Vector2(SCENE_WIDTH, 7f), new Vector2(SCENE_WIDTH-1f, 7f), new Vector2(SCENE_WIDTH-1f, 1.5f), new Vector2(1f, 1.5f), new Vector2(1f, 7f), new Vector2(0f, 7f),}); BodyDef chainBodyDef = new BodyDef(); chainBodyDef.type = BodyType.StaticBody; chainBodyDef.position.set(.0f, .0f); groundBody = world.createBody(chainBodyDef); FixtureDef groundFD = new FixtureDef(); groundFD.shape = chainShape; groundFD.density = 0; groundBody.createFixture(groundFD); groundBody.setUserData("Ground Body"); chainShape.dispose(); }