本文整理匯總了Java中com.badlogic.gdx.physics.box2d.Body.getUserData方法的典型用法代碼示例。如果您正苦於以下問題:Java Body.getUserData方法的具體用法?Java Body.getUserData怎麽用?Java Body.getUserData使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類com.badlogic.gdx.physics.box2d.Body
的用法示例。
在下文中一共展示了Body.getUserData方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: applyForce
import com.badlogic.gdx.physics.box2d.Body; //導入方法依賴的package包/類
/**
* Apply a force to physics object with a force apply position
*
* @param data
* @param force
* @param applyPoint
*/
protected void applyForce(IPhysicsObject data, Vector2 force,
Vector2 applyPoint) {
Iterator<Body> bi = world.getBodies();
while (bi.hasNext()) {
Body b = bi.next();
IPhysicsObject e;
try {
e = (IPhysicsObject) b.getUserData(); // get the IPhysicsObject
} catch (Exception ex) {
e = null;
}
if (e != null) {
if (e == data) {
if (applyPoint == null)
b.applyForceToCenter(force);
else
b.applyForce(force, applyPoint);
}
}
}
}
示例2: createTempBodyDistanceJoint
import com.badlogic.gdx.physics.box2d.Body; //導入方法依賴的package包/類
public Body createTempBodyDistanceJoint(Body bodyA, Body bodyB,
Vector2 localA, Vector2 localB, int length) {
DistanceJointDef dJoint = new DistanceJointDef();
FixtureDef fixtureDef = createFixtureDef(1f, 0.5f, 0.2f, (short) 0x0004);
IPhysicsObject sprite = (IPhysicsObject) bodyA.getUserData();
Body temp = createTempBody(sprite.getX(), sprite.getY(), fixtureDef);
createRevoluteJoint(bodyA, temp, localA, Vector2.Zero);
dJoint.bodyA = temp;
dJoint.bodyB = bodyB;
dJoint.localAnchorA.set(localA.x * WORLD_TO_BOX, localA.y
* WORLD_TO_BOX);
dJoint.localAnchorB.set(localB.x * WORLD_TO_BOX, localB.y
* WORLD_TO_BOX);
dJoint.length = length * WORLD_TO_BOX;
world.createJoint(dJoint);
return temp;
}
示例3: applyForce
import com.badlogic.gdx.physics.box2d.Body; //導入方法依賴的package包/類
/**
* Apply a force to physics object with a force apply position
*
* @param data
* @param force
* @param applyPoint
*/
protected void applyForce(IPhysicsObject data, Vector2 force,
Vector2 applyPoint) {
Iterator<Body> bi = world.getBodies();
while (bi.hasNext()) {
Body b = bi.next();
IPhysicsObject e;
try {
e = (IPhysicsObject) b.getUserData(); // get the IPhysicsObject
} catch (Exception ex) {
e = null;
}
if (e != null) {
if (e == data) {
if (applyPoint == null)
b.applyForceToCenter(force);
else
b.applyForce(force, applyPoint);
}
}
}
}
示例4: createTempBodyDistanceJoint
import com.badlogic.gdx.physics.box2d.Body; //導入方法依賴的package包/類
public Body createTempBodyDistanceJoint(Body bodyA, Body bodyB,
Vector2 localA, Vector2 localB, int length) {
DistanceJointDef dJoint = new DistanceJointDef();
FixtureDef fixtureDef = createFixtureDef(1f, 0.5f, 0.2f, (short) 0x0004);
IPhysicsObject sprite = (IPhysicsObject) bodyA.getUserData();
Body temp = createTempBody(sprite.getX(), sprite.getY(), fixtureDef);
createRevoluteJoint(bodyA, temp, localA, Vector2.Zero);
dJoint.bodyA = temp;
dJoint.bodyB = bodyB;
dJoint.localAnchorA.set(localA.x * WORLD_TO_BOX, localA.y
* WORLD_TO_BOX);
dJoint.localAnchorB.set(localB.x * WORLD_TO_BOX, localB.y
* WORLD_TO_BOX);
dJoint.length = length * WORLD_TO_BOX;
world.createJoint(dJoint);
return temp;
}
示例5: update
import com.badlogic.gdx.physics.box2d.Body; //導入方法依賴的package包/類
@Override
public void update(float gameTime) {
// implement the world physics
world.step(BOX_STEP, BOX_VELOCITY_ITERATIONS, BOX_POSITION_ITERATIONS);
world.clearForces();
Iterator<Body> bi = world.getBodies();
while (bi.hasNext()) {
Body b = bi.next();
if (b == null)
continue;
if (b.getUserData() instanceof IPhysicsObject) {
IPhysicsObject e = (IPhysicsObject) b.getUserData();
// get the x, y position
float x = b.getPosition().x * BOX_TO_WORLD - e.getRegionWidth()
/ 2;
float y = b.getPosition().y * BOX_TO_WORLD
- e.getRegionHeight() / 2;
// set position and rotation of sprite based the body in world
// physics
e.setX(x);
e.setY(y);
e.setRotation(MathUtils.radiansToDegrees * b.getAngle());
e.update(gameTime);
} else if (b.getUserData() instanceof String) {
String str = (String) b.getUserData();
if ("remove".equals(str)) {
b.setUserData(null);
world.destroyBody(b);
b = null;
}
}
}
}