【发布时间】:2013-11-24 19:45:16
【问题描述】:
我知道如何将精灵应用到 Box2d 身体,但有没有办法将纹理应用到它?基本上我想要做的是有一个纹理,比如说 32x32,然后在整个身体上重复它,就像这张图片中的地面:
这在 LibGDX 中可行吗?
编辑:
我最近的尝试:
Fixture fixture = body.createFixture(fixtureDef);
Vector2 mTmp = new Vector2();
PolygonShape shape = (PolygonShape) fixture.getShape();
int vertexCount = shape.getVertexCount();
float[] vertices = new float[vertexCount * 2];
for (int k = 0; k < vertexCount; k++) {
shape.getVertex(k, mTmp);
mTmp.rotate(body.getAngle()* MathUtils.radiansToDegrees);
mTmp.add(body.getPosition());
vertices[k * 2] = mTmp.x * PIXELS_PER_METER;
vertices[k * 2 + 1] = mTmp.y * PIXELS_PER_METER;
}
short triangles[] = new EarClippingTriangulator().computeTriangles(vertices).toArray();
Texture texture = new Texture(Gdx.files.internal("data/block.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
TextureRegion textureRegion = new TextureRegion(texture, 0, 0, texture.getWidth(), texture.getHeight());
PolygonRegion region = new PolygonRegion(textureRegion, vertices, triangles);
poly = new PolygonSprite(region);
在渲染中:
polyBatch.begin();
poly.draw(polyBatch);
polyBatch.end();
但它什么也没画。
导入不同形状的关卡后,我得到了这样的结果:
只有一个多边形(显示在红色圆圈内)获得纹理。整个关卡导入为 JSON 文件
【问题讨论】: