Java 纹理不旋转LWJGL

Java 纹理不旋转LWJGL,java,opengl,lwjgl,slick2d,Java,Opengl,Lwjgl,Slick2d,我正在使用LWJGL和Slick Util库尝试旋转纹理。 这是我用来尝试旋转纹理的代码 GL11.glBegin(GL11.GL_QUADS); GL11.glPushMatrix(); GL11.glTranslatef(x, y, 0); GL11.glRotatef(r, 1, 1, 0); GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getTextureID()); GL11.glTexCoord2f(0, 0); GL11.glV

我正在使用LWJGL和Slick Util库尝试旋转纹理。 这是我用来尝试旋转纹理的代码

GL11.glBegin(GL11.GL_QUADS);

GL11.glPushMatrix();
GL11.glTranslatef(x, y, 0);
GL11.glRotatef(r, 1, 1, 0);

GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getTextureID());
GL11.glTexCoord2f(0, 0);
GL11.glVertex2f(x, y);
GL11.glTexCoord2f(1, 0);
GL11.glVertex2f(x + texture.getTextureWidth(), y);
GL11.glTexCoord2f(1, 1);
GL11.glVertex2f(x + texture.getTextureWidth(), y + texture.getTextureHeight());
GL11.glTexCoord2f(0, 1);
GL11.glVertex2f(x, y + texture.getTextureHeight());

GL11.glPopMatrix();

GL11.glEnd();
它在给定的x和y位置完美地绘制纹理,但当我经过某个度数时,它不会旋转,只会绘制旋转为零的纹理

有人知道我做错了什么吗?先谢谢你

编辑:

当我以180度或任何其他度数运行代码时。这就是我的屏幕的样子。 红色圆圈图像看起来与常规未旋转图像完全相同


我知道回答自己的问题有点自大,但经过大量研究,我终于找到了答案。这里有一种工作方法,它可以根据以度为单位的“r”旋转光滑的纹理

public static void drawTexture(Texture texture, int x, int y, int r)
{
        int width = texture.getTextureWidth();
        int height = texture.getTextureHeight();

        GL11.glTranslatef(x + width / 2, y + height / 2, 0);
        GL11.glRotatef(r, 0, 0, 1);

        GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getTextureID());
        GL11.glBegin(GL11.GL_QUADS);

        GL11.glTexCoord2f(0, 0);
        GL11.glVertex3f(-width / 2, -height / 2, 0);

        GL11.glTexCoord2f(1, 0);
        GL11.glVertex3f(width / 2, -height / 2, 0);

        GL11.glTexCoord2f(1, 1);
        GL11.glVertex3f(width / 2, height / 2, 0);

        GL11.glTexCoord2f(0, 1);
        GL11.glVertex3f(-width / 2, height / 2, 0);

        GL11.glEnd();
        GL11.glLoadIdentity();
}

如果你先旋转然后翻译呢?还是不起作用:/还有其他想法吗?你的代码在我看来是正确的。你能上传你输出的图像吗?检查我在问题中所做的编辑,我已经上传了我代码运行的图像。如果你只沿着任何其他单轴的z轴旋转会发生什么?你在使用ortho2D吗?如果你自己解决了这个问题,那么回答你自己的问题是没有问题的,不过多解释一下为什么这是一个解决方案会更好。