Refine search
public void makeDomino(float x, float y, boolean horizontal, World world) { PolygonShape sd = new PolygonShape(); sd.setAsBox(.5f * dwidth, .5f * dheight); FixtureDef fd = new FixtureDef(); fd.shape = sd; fd.density = ddensity; BodyDef bd = new BodyDef(); bd.type = BodyType.DYNAMIC; fd.friction = dfriction; fd.restitution = 0.65f; bd.position = new Vec2(x, y); bd.angle = horizontal ? (float) (Math.PI / 2.0) : 0f; Body myBody = getWorld().createBody(bd); myBody.createFixture(fd); }
private void initAxis() { BodyDef axisDef = new BodyDef(); axisDef.type = BodyType.STATIC; axisDef.position = new Vec2(3, 3); axis = world.createBody(axisDef); CircleShape axisShape = new CircleShape(); axisShape.setRadius(0.02f); axisShape.m_p.set(0, 0); FixtureDef axisFixture = new FixtureDef(); axisFixture.shape = axisShape; axis.createFixture(axisFixture); }
getWorld().setGravity(new Vec2(0.0f, 0.0f)); FixtureDef sd = new FixtureDef(); sd.shape = shape; sd.density = 0.0f; shape.set(new Vec2(-20.0f, -20.0f), new Vec2(-20.0f, 20.0f)); ground.createFixture(sd); ground.createFixture(sd); ground.createFixture(sd); FixtureDef sd1 = new FixtureDef(); sd1.shape = poly1; sd1.density = 4.0f; PolygonShape poly2 = new PolygonShape(); FixtureDef sd2 = new FixtureDef(); sd2.shape = poly2; sd2.density = 2.0f; FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.density = 1.0f;
BodyDef bd = new BodyDef(); Body ground = getWorld().createBody(bd); ground.createFixture(shape, 0.0f); ground.createFixture(shape, 0.0f); shape.m_radius = 0.25f; BodyDef bd = new BodyDef(); Body body = getWorld().createBody(bd); FixtureDef sd = new FixtureDef(); sd.density = 1.0f; sd.shape = shape; sd.filter.groupIndex = -1; BodyDef bd = new BodyDef(); m_chassis = getWorld().createBody(bd); shape.m_radius = 1.6f; FixtureDef sd = new FixtureDef(); sd.density = 1.0f; sd.shape = shape;
FixtureDef fd1 = new FixtureDef(); FixtureDef fd2 = new FixtureDef(); fd1.filter.groupIndex = -1; fd2.filter.groupIndex = -1; fd2.density = 1.0f; PolygonShape poly1 = new PolygonShape(); PolygonShape poly2 = new PolygonShape(); vertices[0] = new Vec2(); fd2.shape = poly2; bd2.angularDamping = 10.0f; Body body1 = getWorld().createBody(bd1); Body body2 = getWorld().createBody(bd2); body1.createFixture(fd1); body2.createFixture(fd2); djd.initialize(body1, body2, p2.add(m_offset), p5.add(m_offset)); getWorld().createJoint(djd); djd.initialize(body1, body2, p3.add(m_offset), p4.add(m_offset));
PolygonShape sd = new PolygonShape(); sd.setAsBox(50.0f, 10.0f); BodyDef bd = new BodyDef(); bd.position = new Vec2(0.0f, -10.0f); getWorld().createBody(bd).createFixture(sd, 0f); PolygonShape sd = new PolygonShape(); sd.setAsBox(.7f, .7f); FixtureDef fd = new FixtureDef(); fd.density = 35f; BodyDef bd = new BodyDef(); bd.type = BodyType.DYNAMIC; fd.shape = sd; bd.bullet = true; bd.position = new Vec2(30f, 50f); Body b = getWorld().createBody(bd); b.createFixture(fd); b.setLinearVelocity(new Vec2(-25f, -25f)); b.setAngularVelocity(6.7f); bd.position = new Vec2(-30, 25f); b = getWorld().createBody(bd); b.createFixture(fd); b.setLinearVelocity(new Vec2(35f, -10f));
Vec2 gravity = new Vec2(0,-10); World world = new World(gravity); BodyDef groundBodyDef = new BodyDef(); groundBodyDef.position.set(0, -10); Body groundBody = world.createBody(groundBodyDef); PolygonShape groundBox = new PolygonShape(); groundBox.setAsBox(50, 10); groundBody.createFixture(groundBox, 0); BodyDef bodyDef = new BodyDef(); bodyDef.type = BodyType.DYNAMIC; bodyDef.position.set(0, 4); Body body = world.createBody(bodyDef); PolygonShape dynamicBox = new PolygonShape(); dynamicBox.setAsBox(1, 1); FixtureDef fixtureDef = new FixtureDef(); fixtureDef.shape = dynamicBox; fixtureDef.density = 1; fixtureDef.friction = 0.3f; body.createFixture(fixtureDef); world.step(timeStep, velocityIterations, positionIterations); Vec2 position = body.getPosition(); float angle = body.getAngle(); System.out.printf("%4.2f %4.2f %4.2f\n", position.x, position.y, angle);
private void initReel() { BodyDef reelDef = new BodyDef(); reelDef.type = BodyType.DYNAMIC; reelDef.position = new Vec2(3, 3); reel = world.createBody(reelDef); FixtureDef fixture = new FixtureDef(); fixture.friction = 0.5f; fixture.restitution = 0.4f; fixture.density = 1; int parts = 30; for (int i = 0; i < parts; ++i) { PolygonShape shape = new PolygonShape(); double angle1 = i / (double) parts * 2 * Math.PI; double x1 = 2.7 * Math.cos(angle1); double y1 = 2.7 * Math.sin(angle1); double angle2 = (i + 1) / (double) parts * 2 * Math.PI; double x2 = 2.7 * Math.cos(angle2); double y2 = 2.7 * Math.sin(angle2); double angle = (angle1 + angle2) / 2; double x = 0.01 * Math.cos(angle); double y = 0.01 * Math.sin(angle); shape.set(new Vec2[] { new Vec2((float) x1, (float) y1), new Vec2((float) x2, (float) y2), new Vec2((float) (x2 - x), (float) (y2 - y)), new Vec2((float) (x1 - x), (float) (y1 - y)) }, 4); fixture.shape = shape; reel.createFixture(fixture); } }
private void checkBounds() { for (int i=0; i<liquid.length; ++i) { if (liquid[i].getWorldCenter().y < -10.0f) { getWorld().destroyBody(liquid[i]); float massPerParticle = totalMass / nParticles; FixtureDef fd = new FixtureDef(); fd.shape = pd; fd.density = 1.0f; if (bod.getWorldCenter().y < -15.0f) { getWorld().destroyBody(bod); PolygonShape polyDef = new PolygonShape(); polyDef.setAsBox(MathUtils.randomFloat(0.3f,0.7f), MathUtils.randomFloat(0.3f,0.7f)); BodyDef bodyDef = new BodyDef(); bodyDef.position = new Vec2(0.0f,25.0f); bodyDef.type = BodyType.DYNAMIC; bod = getWorld().createBody(bodyDef);
public void createCircle() { float radius = 2.0f; CircleShape shape = new CircleShape(); shape.m_p.setZero(); shape.m_radius = radius; FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.density = 1.0f; fd.friction = 0.0f; Vec2 p = new Vec2((float)Math.random(), 3.0f + (float)Math.random()); BodyDef bd = new BodyDef(); bd.type = BodyType.DYNAMIC; bd.position = p; //bd.allowSleep = false; Body body = getWorld().createBody(bd); body.createFixture(fd); }
BodyDef bd = new BodyDef(); Body ground = getWorld().createBody(bd); shape.set(new Vec2(-10.0f, 0.0f), new Vec2(10.0f, 0.0f)); ground.createFixture(shape, 0.0f); shape.set(new Vec2(-10.0f, 0.0f), new Vec2(-10.0f, 20.0f)); ground.createFixture(shape, 0.0f); shape.set(new Vec2(10.0f, 0.0f), new Vec2(10.0f, 20.0f)); ground.createFixture(shape, 0.0f); shape.m_radius = radius; FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.density = 1.0f; BodyDef bd = new BodyDef(); bd.type = BodyType.DYNAMIC; bd.position.set(-10.0f + (2.1f * j + 1.0f + 0.01f * i) * radius, (2.0f * i + 1.0f) * radius); Body body = getWorld().createBody(bd); body.createFixture(fd); getWorld().setGravity(new Vec2(0.0f, 0.0f));
BodyDef bodyDef = new BodyDef(); Body body = world.createBody(bodyDef); FixtureDef fixtureDef = new FixtureDef(); Fixture fixture; if(isCircle){ circle.setRadius(dimensions.x); fixtureDef.shape = circle; fixture = body.createFixture(fixtureDef); circle.dispose(); }else{ PolygonShape rectangle = new PolygonShape(); rectangle.setAsBox(dimensions.x, dimensions.y); fixtureDef.shape = rectangle; fixture = body.createFixture(fixtureDef); rectangle.dispose(); world.getBodies(bodies); int destroyCount = 0; System.out.println("Attempting to destroy " + world.getBodyCount()+ " bodies"); for(Body b : bodies){ world.destroyBody(b);
private void createBody(World world, View view) { BodyDef bodyDef = new BodyDef(); bodyDef.setType(BodyType.DYNAMIC); bodyDef.position.set(pixelsToMeters(view.getX() + view.getWidth() / 2) , pixelsToMeters(view.getY() + view.getHeight() / 2)); Shape shape = null; Boolean isCircle = (Boolean) view.getTag(R.id.mobike_view_circle_tag); if(isCircle != null && isCircle){ shape = createCircleShape(view); }else{ shape = createPolygonShape(view); } FixtureDef fixture = new FixtureDef(); fixture.setShape(shape); fixture.friction = friction; fixture.restitution = restitution; fixture.density = density; Body body = world.createBody(bodyDef); body.createFixture(fixture); view.setTag(R.id.mobike_body_tag,body); body.setLinearVelocity(new Vec2(random.nextFloat(),random.nextFloat())); }
BodyDef paddleDef = new BodyDef(); paddleDef.type = BodyType.DynamicBody; paddleDef.position.set(width * 0.2f, height / 2); paddleBody.setUserData(4); PolygonShape paddleShape = new PolygonShape(); paddleShape.setAsBox(3.0f, 15.0f); //half-width and half-height FixtureDef paddleFD = new FixtureDef(); paddleFD.shape = paddleShape; paddleFD.density = 10.0f; paddleFD.restitution = 0.1f; paddleBody.createFixture(paddleFD); paddleShape.dispose(); paddleBody.setLinearVelocity(0.0f, 0.0f); paddleShape2.setAsBox(3.0f, 15.0f); //half-width and half-height FixtureDef paddleFD2 = new FixtureDef(); paddleFD2.shape = paddleShape2; paddleFD2.density = 10.0f;
private void createBridge(Vector2 vecFrom, Vector2 vecTo, Float thickness){ BodyDef bodyDef = new BodyDef(); bodyDef.type = BodyDef.BodyType.StaticBody; bodyDef.position.set(vecFrom); Body tmpBody = Box2dGameWorld.getInstance().getWorldBox2D().createBody(bodyDef); PolygonShape shape = new PolygonShape(); shape.set( new Vector2[]{ new Vector2(0,0) ,new Vector2(vecTo.x-vecFrom.x,vecTo.y-vecFrom.y) ,new Vector2(vecTo.x-vecFrom.x,vecTo.y-vecFrom.y-thickness) ,new Vector2(0,0-thickness)}); FixtureDef fixtureDef = new FixtureDef(); fixtureDef.shape = shape; fixtureDef.density = 1f; tmpBody.createFixture(fixtureDef); }
Texture t = assetManager.get("your texture", Texture.class); BodyDef bodyDef = new BodyDef(); body.type = BodyType.DynamicBody float width = 64 * WORLD_TO_BOX; float height = 64 * WORLD_TO_BOX; Shape shape = new PolygonShape(); float[] points = new float[]{0,0,width,0,width,height,0, height}; shape.set(points); FixtureDef def = new FixtureDef(); def.shape = shape; ... body.createFixture(def); shape.dispose();
public Ball (World world){ this.world = world; BodyDef bodyDef = new BodyDef(); bodyDef.type = BodyType.DYNAMIC; bodyDef.position.set(0.0f/RATE, 0.0f/RATE); Ballbody = world.createBody(bodyDef); CircleShape circle = new CircleShape(); radius = (int) (Math.random()*30+15); // you can set a non randum raduis circle.m_radius = radius/RATE; FixtureDef fixtureDef = new FixtureDef(); fixtureDef.shape = circle; fixtureDef.restitution = 0.8f; fixtureDef.density = 2.0f; fixtureDef.friction = 0.3f; fixtureDef.filter.groupIndex = -1; Ballbody.createFixture(fixtureDef); Ballbody.getFixtureList().setUserData("Ballounaton"); // optional Vec2 ballVec = new Vec2((float) (Math.random()*8+2),0.0f); Ballbody.setLinearVelocity(ballVec); }
BodyDef bodyDef = new BodyDef(); FixtureDef fixtureDef = new FixtureDef(); //setting up body and fixture definitions body = world.createBody(bodyDef); body.createFixture(fixtureDef).setUserData( fixtureDef ); body.setUserData( bodyDef ); ... //then just somewhere in your app BodyDef copyBodyDef = (BodyDef) body.getUserData(); FixtureDef copyFixtureDef = (FixtureDef) body.getFixtureList().first().getUserData();
FixtureDef tempFD = new FixtureDef(); PolygonShape tempShape = new PolygonShape(); tempFD.shape = tempShape;
PolygonShape bottomHalfShape = new PolygonShape(); bottomHalfShape.set(new Vector2[] {new Vector2(2, 0), new Vector2(4, 0), new Vector2(4, 4), new Vector2(2, 4)}); PolygonShape topHalfShape = new PolygonShape(); topHalfShape.set(new Vector2[] {new Vector2(0, 4), new Vector2(4, 4), new Vector2(4, 8), new Vector2(0, 8)}); FixtureDef bottomHalf = new FixtureDef(); bottomHalf.shape = bottomHalfShape; FixtureDef topHalf = new FixtureDef(); topHalf.shape = topHalfShape; body.createFixture(bottomHalf); body.createFixture(topHalf);