我正在使用 Android Studio 和 LibGDX 创建一个碰撞测试游戏,我拥有游戏集所需的一切,但是我想在 Box2D 中创建一个像这样的倒三角形,显然,它不会看起来像但这张图片是给你一个例子
我尝试更改 Box2D 中代码的顺序,但它不会创建倒三角形,如下所示:
private Fixture createcollisionFixture(Body collisionBody) {
Vector2[] vertices = new Vector2[3];
vertices[0] = new Vector2(-0.5f, -0.5f);
vertices[1] = new Vector2(0.5f, -0.5f);
vertices[2] = new Vector2(0, 0.5f);
PolygonShape shape = new PolygonShape();
shape.set(vertices);
Fixture fix = collisionBodyBody.createFixture(shape, 1);
shape.dispose();
return fix;
}
我将其更改为:
private Fixture createcollision2Fixture(Body collision2Body) {
Vector2[] vertices = new Vector2[3];
vertices[2] = new Vector2(0, 0.5f);
vertices[1] = new Vector2(0.5f, -0.5f);
vertices[0] = new Vector2(-0.5f, -0.5f);
PolygonShape shape = new PolygonShape();
shape.set(vertices);
Fixture fix = collision2Body.createFixture(shape, 1);
shape.dispose();
return fix;
}
但它一直作为第二张图片加载,而不是像倒三角形,我该如何解决这个问题?我们将不胜感激。
最佳答案
问题不在于 Box2D,而在于您用来绘制三角形的坐标。无论您以什么顺序将它们传递给 Fixture,它们都会生成如下三角形:
如果你想旋转三角形,你必须传递另一组坐标,如下所示:
最后你的代码应该是这样的:
...
Vector2[] vertices = new Vector2[3];
vertices[2] = new Vector2(-0.5, 0.5f);
vertices[1] = new Vector2(0.5f, 0.5f);
vertices[0] = new Vector2(0.5f, -0.5f);
...
关于java - Box2D Android Studio 绘制倒置形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35617886/