我在使用 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 个缺失的顶点在哪里?
截图: /image/nVhJT.png
也许我犯了一个错误,但我验证了很多次,但我没有看到发生了什么。
感谢您的帮助!
编辑: 感谢您的帮助。 也许我不明白什么是凸多边形,因为我很确定它是凸的:
我的原型(prototype)屏幕:/image/rRIHN.png
所以,如果我尊重这个骨架,我的代码中是否存在错误? (逆时针?或者这也不是凸的?)
EDIT2:好吧,我只是看到:如果角度大于 180°,它是凹的,所以我必须更改形状以比三角测量更简单。
最佳答案
该多边形必须是凸多边形,而该多边形不是。理想情况下,它也应该逆时针缠绕,但事实并非如此。
在这种情况下,Box2D 将使用给定顶点的凸包,这就是为什么您最终会得到六边形多边形。
关于java - PolygonShape 对象上缺少两个顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22340300/