List of usage examples for com.badlogic.gdx.physics.box2d CircleShape setRadius
@Override public void setRadius(float radius)
From source file:Tabox2D.java
License:Open Source License
/** * Creates a new Ball (circle shape)//from w ww. j a va 2s . c o m * @param type "dynamic" or "static" * @param x Center X of the ball * @param y Center Y of the ball * @param r Radius * @return A new Tabody instance */ public Tabody newBall(String type, float x, float y, float r) { // Scale proportions: x = x / meterSize; y = y / meterSize; r = r / meterSize; CircleShape circleShape; BodyDef defBall = new BodyDef(); setType(defBall, type); defBall.position.set(x, y); Tabody ball = new Tabody(); ball.body = world.createBody(defBall); circleShape = new CircleShape(); circleShape.setRadius(r); FixtureDef fixtureBall = new FixtureDef(); fixtureBall.shape = circleShape; fixtureBall.density = 1; fixtureBall.friction = 1; fixtureBall.restitution = 0; //////////////////////////////////////// ball.w = r * 2 * meterSize; ball.h = r * 2 * meterSize; ball.fixture = fixtureBall; ball.bodyType = "ball"; //////////////////////////////////////// ball.body.createFixture(fixtureBall); circleShape.dispose(); tabodies.add(ball); return ball; }
From source file:ch.coldpixel.mario.Sprites.Mario.java
public void defineMario() { BodyDef bdef = new BodyDef(); bdef.position.set(32 / MarioBros.PPM, 32 / MarioBros.PPM); bdef.type = BodyDef.BodyType.DynamicBody; b2body = world.createBody(bdef);// w ww .j a v a 2 s .c o m FixtureDef fdef = new FixtureDef(); CircleShape shape = new CircleShape(); shape.setRadius(6 / MarioBros.PPM); fdef.shape = shape; b2body.createFixture(fdef); }
From source file:com.badlogic.gdx.tests.box2d.CollisionFiltering.java
License:Apache License
@Override protected void createWorld(World world) { {/* ww w.j a v a2 s .c o m*/ EdgeShape shape = new EdgeShape(); shape.set(new Vector2(-40.0f, 0), new Vector2(40, 0)); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.3f; BodyDef bd = new BodyDef(); Body ground = world.createBody(bd); ground.createFixture(fd); shape.dispose(); } Vector2[] vertices = new Vector2[3]; vertices[0] = new Vector2(-1, 0); vertices[1] = new Vector2(1, 0); vertices[2] = new Vector2(0, 2); PolygonShape polygon = new PolygonShape(); polygon.set(vertices); FixtureDef triangleShapeDef = new FixtureDef(); triangleShapeDef.shape = polygon; triangleShapeDef.density = 1.0f; triangleShapeDef.filter.groupIndex = k_smallGroup; triangleShapeDef.filter.categoryBits = k_triangleCategory; triangleShapeDef.filter.maskBits = k_triangleMask; BodyDef triangleBodyDef = new BodyDef(); triangleBodyDef.type = BodyType.DynamicBody; triangleBodyDef.position.set(-5, 2); Body body1 = world.createBody(triangleBodyDef); body1.createFixture(triangleShapeDef); vertices[0].scl(2); vertices[1].scl(2); vertices[2].scl(2); polygon.set(vertices); triangleShapeDef.filter.groupIndex = k_largeGroup; triangleBodyDef.position.set(-5, 6); triangleBodyDef.fixedRotation = true; Body body2 = world.createBody(triangleBodyDef); body2.createFixture(triangleShapeDef); { BodyDef bd = new BodyDef(); bd.type = BodyType.DynamicBody; bd.position.set(-5, 10); Body body = world.createBody(bd); PolygonShape p = new PolygonShape(); p.setAsBox(0.5f, 1.0f); body.createFixture(p, 1); PrismaticJointDef jd = new PrismaticJointDef(); jd.bodyA = body2; jd.bodyB = body; jd.enableLimit = true; jd.localAnchorA.set(0, 4); jd.localAnchorB.set(0, 0); jd.localAxisA.set(0, 1); jd.lowerTranslation = -1; jd.upperTranslation = 1; world.createJoint(jd); p.dispose(); } polygon.setAsBox(1, 0.5f); FixtureDef boxShapeDef = new FixtureDef(); boxShapeDef.shape = polygon; boxShapeDef.density = 1; boxShapeDef.restitution = 0.1f; boxShapeDef.filter.groupIndex = k_smallGroup; boxShapeDef.filter.categoryBits = k_boxCategory; boxShapeDef.filter.maskBits = k_boxMask; BodyDef boxBodyDef = new BodyDef(); boxBodyDef.type = BodyType.DynamicBody; boxBodyDef.position.set(0, 2); Body body3 = world.createBody(boxBodyDef); body3.createFixture(boxShapeDef); polygon.setAsBox(2, 1); boxShapeDef.filter.groupIndex = k_largeGroup; boxBodyDef.position.set(0, 6); Body body4 = world.createBody(boxBodyDef); body4.createFixture(boxShapeDef); CircleShape circle = new CircleShape(); circle.setRadius(1); FixtureDef circleShapeDef = new FixtureDef(); circleShapeDef.shape = circle; circleShapeDef.density = 1.0f; circleShapeDef.filter.groupIndex = k_smallGroup; circleShapeDef.filter.categoryBits = k_circleCategory; circleShapeDef.filter.maskBits = k_circleMask; BodyDef circleBodyDef = new BodyDef(); circleBodyDef.type = BodyType.DynamicBody; circleBodyDef.position.set(5, 2); Body body5 = world.createBody(circleBodyDef); body5.createFixture(circleShapeDef); circle.setRadius(2); circleShapeDef.filter.groupIndex = k_largeGroup; circleBodyDef.position.set(5, 6); Body body6 = world.createBody(circleBodyDef); body6.createFixture(circleShapeDef); }
From source file:com.badlogic.gdx.tests.box2d.PhysicalCell.java
public PhysicalCell(Vector2 pos, Texture texture, World world) { // create 3 x 3 mesh this.world = world; this.texture = texture; bodies = new Body[3][3]; FixtureDef fd = new FixtureDef(); fd = new FixtureDef(); //PolygonShape shape = new PolygonShape(); //shape.setAsBox(physicalSize.x / 6, physicalSize.y / 6); CircleShape shape = new CircleShape(); shape.setRadius(0.2f); fd.shape = shape;//from www. j av a2 s .com fd.density = 6f; fd.friction = 0.0f; fd.restitution = 0.0f; BodyDef bd = new BodyDef(); bd.type = BodyType.DynamicBody; // body vertices float x = pos.x; float y = pos.y; float dx = physicalSize.x / 2; float dy = physicalSize.y / 2; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (i * j == 1) continue; bd.position.set(x + i * dx, y + j * dy); Body body = world.createBody(bd); body.createFixture(fd); bodies[i][j] = body; } } // central body //shape.setAsBox(0, 0); bodies[1][1] = world.createBody(bd); shape.dispose(); // edges int n = 3; float dr = (float) Math.sqrt(dx * dx + dy * dy); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Body body = bodies[i][j]; Body body2; if (i < n - 1) { body2 = bodies[i + 1][j]; join(body, body2, dx); } if (j < n - 1) { body2 = bodies[i][j + 1]; join(body, body2, dy); } if (i < n - 1 && j < n - 1) { body2 = bodies[i + 1][j + 1]; join(body, body2, dr); } if (i < n - 1 && j > 0) { body2 = bodies[i + 1][j - 1]; join(body, body2, dr); } } } }
From source file:com.badlogic.gdx.tests.box2d.VerticalStack.java
License:Apache License
@Override public boolean keyDown(int keyCode) { if (keyCode == Input.Keys.COMMA) { if (m_bullet != null) { world.destroyBody(m_bullet); m_bullet = null;/*from www .ja va 2 s .c o m*/ } { CircleShape shape = new CircleShape(); shape.setRadius(0.25f); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.density = 20.0f; fd.restitution = 0.05f; BodyDef bd = new BodyDef(); bd.type = BodyType.DynamicBody; bd.bullet = true; bd.position.set(-31, 5); m_bullet = world.createBody(bd); m_bullet.createFixture(fd); m_bullet.setLinearVelocity(new Vector2(400, 0)); } } return false; }
From source file:com.dgzt.core.button.AbstractButton.java
License:Open Source License
/** * Create the box2D body.// ww w .j a v a2s . c o m * * @param box2DWorld - The box2D world. * @return - The box2D body. */ private Body createBox2DBody(final World box2DWorld) { BodyDef bodyDef = new BodyDef(); bodyDef.type = BodyType.DynamicBody; bodyDef.position.set(box2DX, box2DY); Body body = box2DWorld.createBody(bodyDef); CircleShape circle = new CircleShape(); circle.setRadius(box2DRadius); FixtureDef fixtureDef = new FixtureDef(); fixtureDef.shape = circle; fixtureDef.density = FIXTURE_DEFINITION_DENSITY; fixtureDef.friction = FIXTURE_DEFINITION_FRICTION; fixtureDef.restitution = FIXTURE_DEFINITION_RESTITUTION; fixtureDef.filter.categoryBits = getCategoryBits(); fixtureDef.filter.maskBits = getMaskBits(); final Fixture fixture = body.createFixture(fixtureDef); fixture.setUserData(this); circle.dispose(); // The linear damping. body.setLinearDamping(BOX2D_BODY_LINEAR_DAMPING); return body; }
From source file:com.disc.jammers.boxsprite.Disc.java
private void createBox2dDisc(World world) { BodyDef bodyDef = new BodyDef(); bodyDef.position.set((WIDTH / 2) / PIXEL_PER_METER, (HEIGHT / 2) / PIXEL_PER_METER); bodyDef.type = BodyDef.BodyType.DynamicBody; discBody = world.createBody(bodyDef); discBody.setLinearVelocity(2, 0);//from w w w . ja v a 2 s .co m CircleShape circle = new CircleShape(); circle.setRadius(((discSprite.getWidth() / 4) + (discSprite.getHeight() / 4)) / PIXEL_PER_METER); FixtureDef fdef = new FixtureDef(); fdef.shape = circle; //fdef.isSensor = true; fdef.density = .175f; fdef.friction = 0; fdef.restitution = 1f; fdef.filter.categoryBits = Constant.BIT_DISC; fdef.filter.maskBits = Constant.BIT_PLAYERS | Constant.BIT_BOUNDARY; fixture = discBody.createFixture(fdef); fixture.setUserData(Constant.DISC); circle.dispose(); }
From source file:com.dongbat.game.util.PhysicsUtil.java
/** * Create a box2d Body/*from w ww . ja v a 2s . c o m*/ * * @param physicsWorld box2d world * @param position body position * @param radius body radius * @param e set user data to entity e * @return Body that was just created */ public static Body createBody(World physicsWorld, Vector2 position, float radius, Entity e) { BodyDef bodyDef = new BodyDef(); bodyDef.type = BodyDef.BodyType.DynamicBody; bodyDef.position.set(position); Body body = physicsWorld.createBody(bodyDef); body.setUserData(UuidUtil.getUuid(e)); CircleShape circle = new CircleShape(); circle.setRadius(radius); //collision fixture FixtureDef fixtureDef = new FixtureDef(); fixtureDef.shape = circle; fixtureDef.density = 1; fixtureDef.isSensor = true; // fixtureDef.filter.maskBits = 1; // fixtureDef.filter.categoryBits = 2; Fixture collisionFixture = body.createFixture(fixtureDef); collisionFixture.setUserData("collision"); CircleShape circle2 = new CircleShape(); circle2.setRadius(15); // detection fixture FixtureDef fixtureDef2 = new FixtureDef(); fixtureDef2.shape = circle2; fixtureDef2.density = 0; fixtureDef2.isSensor = true; // fixtureDef.filter.maskBits = 1; // fixtureDef.filter.categoryBits = 2; // Fixture detectionFixture = body.createFixture(fixtureDef2); // detectionFixture.setUserData("detection"); circle.dispose(); circle2.dispose(); return body; }
From source file:com.dongbat.invasion.util.PhysicsUtil.java
public static Body createBody(Vector2 position, float radius) { BodyDef bodyDef = new BodyDef(); bodyDef.type = BodyDef.BodyType.DynamicBody; bodyDef.position.set(position);/*from w ww . jav a 2s . c om*/ Body body = getWorld().createBody(bodyDef); CircleShape circle = new CircleShape(); circle.setRadius(radius); FixtureDef fixtureDef = new FixtureDef(); fixtureDef.shape = circle; fixtureDef.density = 1; fixtureDef.isSensor = true; body.createFixture(fixtureDef); circle.dispose(); return body; }
From source file:com.gdx.game.sprites.Player.java
private void definePlayer() { BodyDef bodyDef = new BodyDef(); bodyDef.position.set(32 / GdxGame.PPM, 32 / GdxGame.PPM); bodyDef.type = BodyDef.BodyType.DynamicBody; this.b2body = world.createBody(bodyDef); FixtureDef fdef = new FixtureDef(); CircleShape shape = new CircleShape(); shape.setRadius(6 / GdxGame.PPM); fdef.filter.categoryBits = GdxGame.MARIO_BIT; fdef.filter.maskBits = GdxGame.DEFAULT_BIT | GdxGame.BRICK_BIT | GdxGame.COIN_BIT; fdef.shape = shape;/*w w w. java2s. c o m*/ b2body.createFixture(fdef); EdgeShape head = new EdgeShape(); head.set(new Vector2(-2 / GdxGame.PPM, 6 / GdxGame.PPM), new Vector2(2 / GdxGame.PPM, 6 / GdxGame.PPM)); fdef.shape = head; fdef.isSensor = true; b2body.createFixture(fdef).setUserData("head"); }