在libgdx中使用棱柱关节
问题描述:
我试图创建电梯。我使用PrismaticJointDef但身体A具有相同的身体B的位置。如何定义两个身体之间的距离?我也使用了DistanceJointDef,但得到相同的结果。 我想得到像这样的视频这样的结果。 https://www.youtube.com/watch?v=rzNjNBKYuGI在libgdx中使用棱柱关节
private void defineBodyA(){
bodyDef.type = BodyDef.BodyType.DynamicBody;
bodyDef.position.set(getX() + getWidth()/2, getY() + getHeight()/2);
bodyA = world.createBody(bodyDef);
PolygonShape shape = new PolygonShape();
shape.setAsBox(getWidth()/2, getHeight()/2);
fixtureDef.shape = shape;
bodyA.createFixture(fixtureDef);
bodyA.setLinearDamping(30f);
shape.dispose();
}
private void defineBodyB{
bodyDef.position.set(getX() + getWidth()/2, (getY() + 80/PPM);
bodyDef.type = BodyDef.BodyType.StaticBody;
bodyB = world.createBody(bodyDef);
PolygonShape upOfElevator = new PolygonShape();
upOfElevator.setAsBox(16f/PPM, 0.5f/PPM);
fixtureDef.shape = upOfElevator;
bodyB.createFixture(fixtureDef);
upOfElevator.dispose();
}
PrismaticJointDef prismaticJointDef = new PrismaticJointDef();
prismaticJointDef.bodyA = bodyA;
prismaticJointDef.bodyB = bodyB;
world.createJoint(prismaticJointDef);
DistanceJointDef distanceJointDef = new DistanceJointDef();
distanceJointDef.bodyA = bodyA;
distanceJointDef.bodyB = bodyB;
distanceJointDef.length = 100/PPM;
world.createJoint(distanceJointDef);