Example usage for com.badlogic.gdx.physics.box2d CircleShape setRadius

List of usage examples for com.badlogic.gdx.physics.box2d CircleShape setRadius

Introduction

In this page you can find the example usage for com.badlogic.gdx.physics.box2d CircleShape setRadius.

Prototype

@Override
    public void setRadius(float radius) 

Source Link

Usage

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");
}