【发布时间】:2014-01-06 17:48:31
【问题描述】:
我正在尝试为我正在创建的新游戏渲染背景图像。为此,我想我只需创建一个简单的四边形并首先绘制它,以便它延伸到我的游戏背景上。问题是四边形没有绘制到正确的大小,而是在屏幕上完全错误的位置绘制。我正在使用 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()的参数。这只是乱七八糟,看起来不自然。
为什么这个背景精灵不会绘制到正确的大小?
【问题讨论】: