LibGDX BOX2D更改MaxPolygonVertex

LibGDX BOX2D更改MaxPolygonVertex,libgdx,box2d,vertices,Libgdx,Box2d,Vertices,我需要制作一个有超过8个顶点的实体,我得到了错误 AL lib: (EE) alc_cleanup: 1 device not closed Assertion failed! Program: C:\Program Files\Java\jre7\bin\javaw.exe File: /var/lib/jenkins/workspace/libgdx/gdx/jni/Box2D/Collision/Shapes/b2PolygonShape.cpp, Line 122 Expres

我需要制作一个有超过8个顶点的实体,我得到了错误

   AL lib: (EE) alc_cleanup: 1 device not closed
Assertion failed!

Program: C:\Program Files\Java\jre7\bin\javaw.exe
File: /var/lib/jenkins/workspace/libgdx/gdx/jni/Box2D/Collision/Shapes/b2PolygonShape.cpp, Line 122

Expression: 3 <= count && count <= 8

如何从libGDX更改它?

实际上,您不应该更改它,因为它会降低性能

您要做的是创建一个带有多个
装置的
主体
。这些装置最多有8个顶点,并将共享一些顶点,因此您将使用粘在一起的较小零件模拟较大的零件

这称为多边形分解。导出场景时,某些Box2D编辑器会自动为您执行此操作。可能是Box2D最好的编辑器了。还有一个用于rube场景的libgdx加载程序


如果您以编程方式创建它们,您可能需要自己完成这项工作。也许像的一些LibGDX工具可以帮助您。

好吧,让我们假设我有一个顶点的浮点数组,它有8个以上的点,我如何使用earcipingtriangulator?它可以三角化您的多边形。得到的数组是一个带有三角形索引的数组。你可以每个取3个,然后构造一个新的夹具。这意味着
array[sa.get(0)]
array[sa.get(1)]
array[sa.get(2)]
将是一个新的三角固定装置的顶点。但是,三角形有3个点,x1 y1 x2 y2 x3 y3,3个浮点值如何工作?我需要6。,我没有用向量2数组来给点,我用float[]数组来给点,这里像[x1,y1,x2,y2…..xn,yn]。。。我得到错误表达式:3次运算我发现短数组中的值是向量2数组的索引,我还从浮点数组中创建了向量2数组,这很有效,谢谢!一开始我没有意识到输入是一个浮点数组,而不仅仅是顶点,我只是想解释一下。很高兴它成功了:)
#define b2_maxPolygonVertices   8