Java 有纹理的Box2D身体?

Java 有纹理的Box2D身体?,java,libgdx,box2d,Java,Libgdx,Box2d,我知道如何将sprite应用于Box2d实体,但是否有方法将纹理应用于它?基本上我想做的是有一个纹理,比如说32x32,然后在全身重复,就像这张图中的地面一样: 这在LibGDX中可能吗 编辑: 我的最新尝试: Fixture Fixture=body.createFixture(fixtureDef); Vector2 mTmp=新Vector2(); 多边形形状=(多边形形状)fixture.getShape(); int vertexCount=shape.getVertexCount(

我知道如何将sprite应用于Box2d实体,但是否有方法将纹理应用于它?基本上我想做的是有一个纹理,比如说32x32,然后在全身重复,就像这张图中的地面一样:

这在LibGDX中可能吗

编辑:

我的最新尝试:

Fixture Fixture=body.createFixture(fixtureDef);
Vector2 mTmp=新Vector2();
多边形形状=(多边形形状)fixture.getShape();
int vertexCount=shape.getVertexCount();
float[]顶点=新的float[vertexCount*2];
for(int k=0;k
在呈现时:

polyBatch.begin();
        poly.draw(polyBatch);
        polyBatch.end();
但它没有画任何东西

导入不同形状的关卡后,我得到以下结果:


只有一个多边形(显示在红色圆圈内)获得纹理。整个级别作为JSON文件导入

是的,这在libgdx中非常可能

你只需要为它创建一个多边形区域

PolygonRegion region = new PolygonRegion(textureRegion, vertices, triangles);
这里的textureRegion是要重复的区域。 顶点和三角形定义区域的形状

该多边形区域是一个重复纹理,由顶点和三角形形成红色。您可以使用多边形批处理渲染此区域,就像我们使用sprite批处理一样

更新

PolygonShape形状=(PolygonShape)fixture.getShape();
int vertexCount=shape.getVertexCount();
float[]顶点=新的float[vertexCount*2];
for(int k=0;k
但是我如何将我的box2d地面多边形转换为顶点和三角形?@RohitMalish您能解释一下mTmp和EAR\u CLIPPING\u TRIANGULATOR吗?@RohitMalish根据文档“EAR cutting算法的一个简单实现,用于无孔三角化简单多边形”。它是一个工具类,尝试从顶点计算三角形的最小数目。mtmp是一个向量2,我们把它传递给box2d。它将向该变量添加顶点信息。如果你有每米用户像素(相机和世界贴图的任何常数),那么乘法就可以解决这个问题。我试过了,但它没有画任何东西。我用我尝试过的最新代码更新了我的问题,你能看一下并告诉我它有什么问题吗?