繁体   English   中英

使用LWJGL难以绘制背景精灵

[英]Difficulty drawing a background sprite using LWJGL

我正在尝试为正在创建的新游戏渲染背景图像。 为此,我认为我将只创建一个简单的Quad并首先绘制它,以使其覆盖我的游戏背景。 问题是四边形无法绘制到正确的尺寸,并且在屏幕上完全错误的位置绘制。 我正在使用LWJGL和添加的slick-util库来加载纹理。

    background = TextureHandler.getTexture("background", "png");

这行代码基本上使用我使用slick-util编写的类来获取我的背景纹理。 然后,我将纹理绑定到一个四边形,并使用glBegin()glEnd()绘制它,如下所示:

    // Draw the background.
    background.bind();
    glBegin(GL_QUADS);
    {
        glTexCoord2d(0.0, 0.0);
        glVertex2d(0, 0);

        glTexCoord2d(1.0, 0.0);
        glVertex2d(Game.WIDTH, 0);

        glTexCoord2d(1.0, 1.0);
        glVertex2d(Game.WIDTH, Game.HEIGHT);

        glTexCoord2d(0.0, 1.0);
        glVertex2d(0, Game.HEIGHT);
    }
    glEnd();

您可能希望此块绘制四边形,使其覆盖整个屏幕,但实际上并没有这样做。 它将其绘制在屏幕中间,如下所示: http : //imgur.com/Xw9Xs9Z

占据屏幕较大部分的彩色大精灵是我的背景,但并没有占据我想要的全部空间。

我尝试过的几件事:

  • 检查,仔细检查和三次检查,以确保子画面的大小和窗口的大小相同

  • 调整精灵大小,使其大于和小于我的目标大小。 当我这样做时,似乎什么都没有改变。

  • 将精灵放置在不同的时间间隔或弄乱glTexCoord2d()glVertex2d() 这只是一团糟,看起来不自然。

为什么这个背景精灵无法绘制到正确的大小?

如果尚未创建自己的正交投影(即使用glOrtho() IE),则顶点坐标将需要介于-1到+1之间。 现在,您仅在该投影的左半部分上绘图,因此可以得到此结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM