Example usage for com.badlogic.gdx.physics.box2d World getBodies

List of usage examples for com.badlogic.gdx.physics.box2d World getBodies

Introduction

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

Prototype

public void getBodies(Array<Body> bodies) 

Source Link

Usage

From source file:com.me.mygdxgame.Entities.MydebugRenderer.java

License:Apache License

private void renderBodies(World world) {
    renderer.begin(ShapeType.Line);

    if (drawBodies || drawAABBs) {
        world.getBodies(bodies);
        for (Iterator<Body> iter = bodies.iterator(); iter.hasNext();) {
            Body body = iter.next();/*from www  . j a v a2  s . co m*/
            if (body.isActive() || drawInactiveBodies)
                renderBody(body);
        }
    }

    if (drawJoints) {
        world.getJoints(joints);
        for (Iterator<Joint> iter = joints.iterator(); iter.hasNext();) {
            Joint joint = iter.next();
            drawJoint(joint);
        }
    }
    renderer.end();
    if (drawContacts) {
        if (Gdx.gl10 != null)
            Gdx.gl10.glPointSize(3);
        renderer.begin(ShapeType.Point);
        for (Contact contact : world.getContactList())
            drawContact(contact);
        renderer.end();
        if (Gdx.gl10 != null)
            Gdx.gl10.glPointSize(1);
    }
}

From source file:com.nebula2d.scene.SceneManager.java

License:Open Source License

public static void fixedUpdate() {

    if (currentScene == null)
        return;//w  w  w.j a v  a2  s  .c  om

    World physicalWorld = currentScene.getPhysicalWorld();
    physicalWorld.step(1 / 45f, 6, 2);

    Array<Body> bodies = new Array<Body>();
    physicalWorld.getBodies(bodies);

    for (Body body : bodies) {
        if (body.getType() != BodyDef.BodyType.StaticBody) {
            GameObject go = (GameObject) body.getUserData();
            go.setPosition(body.getPosition().x, body.getPosition().y);
            go.setRotation((float) (body.getAngle() * 180.0f / Math.PI));
        }
    }
}

From source file:com.pastew.autogearbox.handlers.Box2DSprite.java

License:Apache License

/** draws all the {@link Box2DSprite Box2DSprites} on the {@link Body} or {@link Fixture} that hold them in their user data in the given {@link World} */
public static void draw(Batch batch, World world, boolean sortByZ) {
    @SuppressWarnings("unchecked")
    Array<Body> tmpBodies = Pools.obtain(Array.class);
    world.getBodies(tmpBodies);

    if (sortByZ) {
        @SuppressWarnings("unchecked")
        ObjectMap<Box2DSprite, Object> tmpZMap = Pools.obtain(ObjectMap.class);
        tmpZMap.clear();/*from  www .j  a  v  a  2s  .  c o  m*/
        for (Body body : tmpBodies) {
            Box2DSprite tmpBox2DSprite;
            if ((tmpBox2DSprite = userDataAccessor.apply(body.getUserData())) != null)
                tmpZMap.put(tmpBox2DSprite, body);
            for (Fixture fixture : body.getFixtureList())
                if ((tmpBox2DSprite = userDataAccessor.apply(fixture.getUserData())) != null)
                    tmpZMap.put(tmpBox2DSprite, fixture);
        }

        @SuppressWarnings("unchecked")
        Array<Box2DSprite> tmpKeys = Pools.obtain(Array.class);
        Iterator<Box2DSprite> keys = tmpZMap.keys();
        while (keys.hasNext())
            tmpKeys.add(keys.next());
        tmpKeys.sort(zComparator);
        for (Box2DSprite key : tmpKeys) {
            Object value = tmpZMap.get(key);
            if (value instanceof Body)
                key.draw(batch, (Body) value);
            else
                key.draw(batch, (Fixture) value);
        }

        tmpKeys.clear();
        tmpZMap.clear();
        Pools.free(tmpKeys);
        Pools.free(tmpZMap);
    } else
        for (Body body : tmpBodies) {
            Box2DSprite tmpBox2DSprite;
            if ((tmpBox2DSprite = userDataAccessor.apply(body.getUserData())) != null)
                tmpBox2DSprite.draw(batch, body);
            for (Fixture fixture : body.getFixtureList())
                if ((tmpBox2DSprite = userDataAccessor.apply(fixture.getUserData())) != null)
                    tmpBox2DSprite.draw(batch, fixture);
        }

    tmpBodies.clear();
    Pools.free(tmpBodies);
}

From source file:com.stercore.code.net.dermetfan.utils.libgdx.graphics.Box2DSprite.java

License:Apache License

/** draws all the {@link Box2DSprite Box2DSprites} on the {@link Body} or {@link Fixture} that hold them in their user data in the given {@link World} */
public static void draw(Batch batch, World world, boolean sortByZ) {
    @SuppressWarnings("unchecked")
    Array<Body> tmpBodies = Pools.obtain(Array.class);
    Box2DSprite tmpBox2DSprite;//from www .  j ava2  s . co  m

    world.getBodies(tmpBodies);

    if (sortByZ) {
        @SuppressWarnings("unchecked")
        ObjectMap<Box2DSprite, Object> tmpZMap = Pools.obtain(ObjectMap.class);
        tmpZMap.clear();
        for (Body body : tmpBodies) {
            if ((tmpBox2DSprite = userDataAccessor.apply(body.getUserData())) != null)
                tmpZMap.put(tmpBox2DSprite, body);
            for (Fixture fixture : body.getFixtureList())
                if ((tmpBox2DSprite = userDataAccessor.apply(fixture.getUserData())) != null)
                    tmpZMap.put(tmpBox2DSprite, fixture);
        }

        @SuppressWarnings("unchecked")
        Array<Box2DSprite> tmpKeys = Pools.obtain(Array.class);
        Iterator<Box2DSprite> keys = tmpZMap.keys();
        while (keys.hasNext())
            tmpKeys.add(keys.next());
        tmpKeys.sort(zComparator);
        for (Box2DSprite key : tmpKeys) {
            Object value = tmpZMap.get(key);
            if (value instanceof Body)
                key.draw(batch, (Body) value);
            else
                key.draw(batch, (Fixture) value);
        }

        tmpKeys.clear();
        tmpZMap.clear();
        Pools.free(tmpKeys);
        Pools.free(tmpZMap);
    } else
        for (Body body : tmpBodies) {
            if ((tmpBox2DSprite = userDataAccessor.apply(body.getUserData())) != null)
                tmpBox2DSprite.draw(batch, body);
            for (Fixture fixture : body.getFixtureList())
                if ((tmpBox2DSprite = userDataAccessor.apply(fixture.getUserData())) != null)
                    tmpBox2DSprite.draw(batch, fixture);
        }

    tmpBodies.clear();
    Pools.free(tmpBodies);
}

From source file:net.dermetfan.utils.libgdx.graphics.Box2DSprite.java

License:Apache License

/** draws all the {@link Box2DSprite Box2DSprites} on the {@link Body} or {@link Fixture} that hold them in their user data in the given {@link World} */
public static void draw(Batch batch, World world, boolean sortByZ) {
    world.getBodies(tmpBodies);

    if (!sortByZ) {
        for (Body body : tmpBodies) {
            if ((tmpBox2DSprite = userDataAccessor.access(body.getUserData())) != null)
                tmpBox2DSprite.draw(batch, body);
            for (Fixture fixture : body.getFixtureList())
                if ((tmpBox2DSprite = userDataAccessor.access(fixture.getUserData())) != null)
                    tmpBox2DSprite.draw(batch, fixture);
        }//from   ww w. j  a v  a2  s. com
        return;
    }

    for (Body body : tmpBodies) {
        if ((tmpBox2DSprite = userDataAccessor.access(body.getUserData())) != null)
            tmpZMap.put(tmpBox2DSprite, body);
        for (Fixture fixture : body.getFixtureList())
            if ((tmpBox2DSprite = userDataAccessor.access(fixture.getUserData())) != null)
                tmpZMap.put(tmpBox2DSprite, fixture);
    }

    Array<Box2DSprite> keys = tmpZMap.keys().toArray();
    keys.sort(zComparator);

    Object value;
    for (Box2DSprite key : keys) {
        value = tmpZMap.get(key);
        if (value instanceof Body)
            key.draw(batch, (Body) value);
        else
            key.draw(batch, (Fixture) value);
    }
    tmpZMap.clear();
}

From source file:org.box2d.r3.gdx.GDXBox2DDebugRenderer.java

License:Apache License

private void renderBodies(final World world) {
    this.renderer.begin(ShapeType.Line);

    if (this.drawBodies || this.drawAABBs) {
        world.getBodies(bodies);
        for (final Iterator<Body> iter = bodies.iterator(); iter.hasNext();) {
            final Body body = iter.next();
            if (body.isActive() || this.drawInactiveBodies) {
                this.renderBody(body);
            }/*from  w ww.  j ava  2 s . c  om*/
        }
    }

    if (this.drawJoints) {
        world.getJoints(joints);
        for (final Iterator<Joint> iter = joints.iterator(); iter.hasNext();) {
            final Joint joint = iter.next();
            this.drawJoint(joint);
        }
    }
    this.renderer.end();
    if (this.drawContacts) {
        this.renderer.begin(ShapeType.Point);
        for (final Contact contact : world.getContactList()) {
            this.drawContact(contact);
        }
        this.renderer.end();
    }
}