所以我试图在渲染图像时创建一个简单的方法来拉伸图像。但是因为opengl与这些三角形一起使用而不是矩形,所以它有点紧张。
正如您所看到的,三角形的两个部分被拉伸得不同。 我的代码如下:
public static void drawTexture(Texture texture, float x, float y, float x2, float y2, float x3, float y3, float x4, float y4){
if(cantRender()) return;
polyBatch.begin();
float[] vertices = new float[20];
float color = Color.WHITE.toFloatBits();
int idx = 0;
vertices[idx++] = x;
vertices[idx++] = y;
vertices[idx++] = color;
vertices[idx++] = 0;
vertices[idx++] = 1;
vertices[idx++] = x2;
vertices[idx++] = y2;
vertices[idx++] = color;
vertices[idx++] = 1;
vertices[idx++] = 1;
vertices[idx++] = x3;
vertices[idx++] = y3;
vertices[idx++] = color;
vertices[idx++] = 1;
vertices[idx++] = 0;
vertices[idx++] = x4;
vertices[idx++] = y4;
vertices[idx++] = color;
vertices[idx++] = 0;
vertices[idx++] = 0;
polyBatch.draw(texture, vertices, 0, 20);
polyBatch.end();
}
Renderer.drawTexture(testTexture, 100, 100, 500, 100, 400, 500, 200, 500);
我在互联网上找到了一个修复程序,但我不知道如何使它与libgdx结合使用。这是我发现的文章: http://www.xyzw.us/~cass/qcoord/。 问题是,似乎libgdx不支持所有这四个变量,如本文所述。