我在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将使用给定顶点的凸包,这就是为什么最终使用六面多边形的原因。