我在PolygonShape对象box2D上遇到了一些麻烦。
我有8个顶点绘制代码:

float scaleW = width/12;
float scaleH = height/2;
chassisShape.set(new float[] {-scaleW*2,scaleH,  scaleW*2,scaleH,  scaleW*3,0,      scaleW*7,0,  scaleW*7,-scaleH,  -scaleW*5,-scaleH,  -scaleW*5,0,  -scaleW*3,0});


但这仅渲染6个顶点多边形。
2个丢失的顶点在哪里?

屏幕截图:
http://imgur.com/QT05beN.png

也许我犯了一个错误,但是我验证了很多时间,但看不到发生了什么。

谢谢你的帮助!

编辑:
谢谢你的帮助。
也许我不明白什么是凸多边形,因为我很确定那是凸多边形:

我的原型屏幕:http://i.imgur.com/bR7nqVt.png

因此,如果我尊重这个框架,代码中的错误是吗? (逆时针?还是不是凸的?)

EDIT2:好的,我只是看到:如果角度大于180°,它是凹形的,所以我必须更改形状以使其比三角剖分更简单。

最佳答案

多边形必须是凸的,而那个不是。理想情况下,也应逆时针缠绕,但不要缠绕。



在这种情况下,Box2D将使用给定顶点的凸包,这就是为什么最终使用六面多边形的原因。

10-07 16:09