Libgdx 摩擦力在Box2d中不起作用
我用Libgdx和Box2d编写了一个简单的游戏。我的主要代码如下:Libgdx 摩擦力在Box2d中不起作用,libgdx,box2d,Libgdx,Box2d,我用Libgdx和Box2d编写了一个简单的游戏。我的主要代码如下: BodyDef bodyDef = new BodyDef(); bodyDef.type = BodyType.StaticBody; bodyDef.position.set(new Vector2(mainGear.getX() + mainGear.getOriginX(), mainGear.getY() + mainGear.getOrigin
BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyType.StaticBody;
bodyDef.position.set(new Vector2(mainGear.getX()
+ mainGear.getOriginX(), mainGear.getY()
+ mainGear.getOriginY()));
body = world.createBody(bodyDef);
float r = 231.5f;
Vector2[] vertexs = new Vector2[36];
for (int i = 0; i < 36; i++) {
vertexs[i] = new Vector2(MathUtils.cosDeg(10 * i) * r,
MathUtils.sinDeg(10 * i) * r);
}
ChainShape shape = new ChainShape();
shape.createLoop(vertexs);
FixtureDef fd = new FixtureDef();
fd.shape = shape;
fd.friction = 0.5f;
fd.density = 1;
body.createFixture(fd);
// Dynamic Body
BodyDef bodyDef1 = new BodyDef();
bodyDef1.type = BodyType.DynamicBody;
bodyDef1.position.set(200, 350);
body1 = world.createBody(bodyDef1);
CircleShape dynamicCircle = new CircleShape();
dynamicCircle.setRadius(16f);
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape = dynamicCircle;
fixtureDef.density = 1f;
fixtureDef.friction = 0.5f;
fixtureDef.restitution = 0.5f;
body1.createFixture(fixtureDef);
BodyDef BodyDef=新的BodyDef();
bodyDef.type=BodyType.StaticBody;
bodyDef.position.set(新矢量2(mainGear.getX)()
+mainGear.getOriginX(),mainGear.getY()
+mainGear.getOriginY());
body=world.createBody(bodyDef);
浮子r=231.5f;
Vector2[]顶点=新的Vector2[36];
对于(int i=0;i<36;i++){
顶点[i]=新矢量2(数学余弦度(10*i)*r,
数学信度(10*i)*r);
}
ChainShape shape=新ChainShape();
shape.createLoop(顶点);
FixtureDef fd=新的FixtureDef();
fd.shape=形状;
fd.摩擦力=0.5f;
fd.密度=1;
车身夹具(fd);
//动力体
BodyDef bodyDef1=新的BodyDef();
bodyDef1.type=BodyType.DynamicBody;
bodyDef1.位置设置(200350);
body1=world.createBody(bodyDef1);
CircleShape dynamicCircle=新的CircleShape();
动态圆设定半径(16f);
FixtureDef FixtureDef=新的FixtureDef();
fixtureDef.shape=动态圆;
固定件密度=1f;
固定件摩擦力=0.5f;
fixtureDef.Restoration=0.5f;
主体1.createFixture(fixtureDef);
但是当我旋转大圆圈时,小圆圈仍然像我不旋转时一样正常移动。看起来两个圆圈之间的摩擦力不起作用。我想要的是,当我向右(或向左)旋转大圆时,摩擦力会拉动小圆跟随它 当你说“看起来像…”时,你是在看Box2D调试绘图显示还是你自己制作的其他东西?是的,我看了Box2D调试绘图显示,我看到小圆圈没有移动。我还做了另一个项目,在盒子上方有一个小圆圈(两者的摩擦力都为0.5)。当盒子移动时,圆圈仍然站在那里。嗨,问题是我用setTransform函数旋转了大圆圈,所以它忽略了所有的物理效应。那么,如何将大圆旋转到指定的角度并保持物理效果呢?