本文整理汇总了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;
}
}
}
}