gpt4 book ai didi

java - Box2D 多边形体不旋转

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:51 25 4
gpt4 key购买 nike

我正在尝试使用“libGDX”和“Box2D”创建游戏。我在游戏中有几个形状,所以我创建了一个 BodyFactory 类,它使用 PolygonShape

创建我的 body

问题是,当我使用 Shape.setAsBox() 方法创建主体时,一切正常,但是当我使用 PolygonShape.set(vertices) 创建主体时>, body 的位置随我的意愿改变,但它们根本不会旋转。

这是我从天上掉下 3 个物体时(稳定后)得到的结果:

enter image description here正方形旋转并停留在地面上,其他形状则不会。

另请注意,我尝试添加

body.setFixedRotation(false);

到我的代码,但没有任何改变。

形状的摩擦力、质量和密度也处于合理的数量。

这是我的代码的一部分,它从一个文件创建一个“PolygonShape”:

...
Body body = world.createBody(bodyDef);
...
for (int i = 0; i < bodyConf.meshData.length; i++) {
PolygonShape polygonShape = new PolygonShape();
polygonShape.set(bodyConf.meshData[i]);
fixtureDef.shape = polygonShape;
body.createFixture(fixtureDef);
polygonShape.dispose();
}

最佳答案

我认为问题在于您只创建了 一个 Body 并附加了 three Fixture .

您真正想要的是三个 Body,每个一个 Fixture。这样,每个物体都可以独立于其他物体旋转。

for (int i = 0; i < bodyConf.meshData.length; i++) {
BodyDef bodyDef = ...;
Body body = world.createBody(bodyDef);
PolygonShape polygonShape = new PolygonShape();
polygonShape.set(bodyConf.meshData[i]);
fixtureDef.shape = polygonShape;
body.createFixture(fixtureDef);
polygonShape.dispose();
}

关于java - Box2D 多边形体不旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30152358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com