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(); 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) { renderer.begin(ShapeType.Point); for (Contact contact : world.getContactList()) drawContact(contact); renderer.end(); } }
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(); 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) { renderer.begin(ShapeType.Point); for (Contact contact : world.getContactList()) drawContact(contact); renderer.end(); } }
private void clearWorld() { ballsBodies.clear(); ballsSprites.clear(); Array<Body> bodies = new Array<Body>(); world.getBodies(bodies); for (Body b : bodies) world.destroyBody(b); }
protected Body[] getBodyAB(World world){ Body[] bodies = new Body[2]; Array<Body> bodyArray = new Array<>(world.getBodyCount()); world.getBodies(bodyArray); for(Body body : bodyArray){ if(this.bodyA.equals(body.getUserData())) bodies[0] = body; else if(this.bodyB.equals(body.getUserData())) bodies[1] = body; } return bodies; }
HashMap<String, String> reverseBodyNames = new HashMap<>(); Array<Body> bodyArray = new Array<>(world.getBodyCount()); world.getBodies(bodyArray); for(Body body : bodyArray) if(body.getUserData() instanceof String)
@Override public Body getPhysicsObject(String name) { Array<Body> bodyArray = new Array<>(world.getBodyCount()); world.getBodies(bodyArray); for (Body body : bodyArray) if (name != null && name.equals(body)) return body; return null; }
/** * @return closest body to the given x,y in world coordinates */ public static Body closestBody(World world, float x, float y){ Body body = null; float closestDistance = Float.MAX_VALUE; Array<Body> bodyArray = new Array<>(world.getBodyCount()); world.getBodies(bodyArray); for(Body worldBody : bodyArray){ float distance = worldBody.getPosition().dst2(x,y); if(body == null || closestDistance > distance){ body = worldBody; closestDistance = distance; } } return body; } }
@Override public Body getPhysicsObject(String name) { Array<Body> bodyArray = new Array<>(world.getBodyCount()); world.getBodies(bodyArray); for (Body body : bodyArray) if (name != null && name.equals(body.getUserData())) return body; return null; }
@Override public void act(float delta) { super.act(delta); Array<Body> bodies = new Array<Body>(world.getBodyCount()); world.getBodies(bodies); for (Body body : bodies) { update(body); } // Fixed timestep accumulator += delta; while (accumulator >= delta) { world.step(TIME_STEP, 6, 2); accumulator -= TIME_STEP; } //TODO: Implement interpolation }
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(); 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) { renderer.begin(ShapeType.Point); for (Contact contact : world.getContactList()) drawContact(contact); renderer.end(); } }
@Override public boolean isNear(String origin, String target, float distance) { Body originBody = null, targetBody = null; Array<Body> bodyArray = new Array<>(world.getBodyCount()); world.getBodies(bodyArray); for (Body body : bodyArray) { if (origin != null && origin.equals(body.getUserData())) originBody = body; if (target != null && target.equals(body.getUserData())) targetBody = body; } return originBody.getPosition().dst(targetBody.getPosition()) < distance; }
PhysicalWorld.WORLD.getBodies(bodys); for (Body body : bodys) { try {