gpt4 book ai didi

java - 如何获取 Box2D 多边形的坐标?

转载 作者:行者123 更新时间:2023-11-30 08:16:38 25 4
gpt4 key购买 nike

我有一个主体,上面只连接了一个固定装置。附加到夹具的形状是 PolygonShape。为了渲染主体,我需要访问其顶点坐标。

这是我尝试过的:

Vector2 tmpVector = new Vector2();
Fixture f = body.getFixtureList().get(0);
PolygonShape shape = (PolygonShape)f.getShape();
shape.getVertex(3, tmpVector);
shape.getVertex(2, tmpVector);
shape.getVertex(1, tmpVector);
shape.getVertex(0, tmpVector);

当 body 不与其他 body 接触时它会起作用。

问题是,当物体与另一个物体碰撞时,getFixtureList 返回多个夹具,其中包括来自其他物体的夹具。

如何解决这个问题?

我需要做的就是动态访问多边形体的顶点位置。

最佳答案

您可以使用 getBody() 方法检查灯具的主体是否等于 body:

Vector2 tmpVector = new Vector2();
Fixture f = body.getFixtureList().get(0);
while (f.getBody() != body)
{
f = f.getNext();
}
if (f != null)
{
PolygonShape shape = (PolygonShape)f.getShape();
// get vertices
}

当然,只有当您知道 body 恰好有一个具有多边形形状的固定装置时,这才有效,正如问题中所述。否则,您可能会考虑使用 userData 属性来存储有关不同灯具的信息。

关于java - 如何获取 Box2D 多边形的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569975/

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