垂直调整屏幕大小时四边形移动
Quad moves when screen is resized verticly
我在屏幕上绘制了一个四边形,位于屏幕顶部并居中。当我调整屏幕大小使其不那么高时,四边形似乎在与它应该的方向相反的方向上移动,即在我的显示器上以与它应该下降的速度相同的速度向上移动。
在渲染之前,它一直被设置在屏幕顶部并在每个循环中居中。
this.location[0] = (Display.getWidth()/2)-(this.size[0]/2);
this.location[1] = 0;
然后我渲染四边形并打印出它的 Y
位置。这始终如一 returns 0
,无论我将 window 调整为什么。通过打印出鼠标坐标,我可以确认屏幕顶部在调整大小时是 0
。为什么会这样,即使我将四边形设置在 0
,然后在 恰好在 之后渲染它,它仍然没有在 0
绘制?
有没有我不明白的 Opengl 或 LWJGL 概念?
这是 Opengl 设置代码。
GL11.glEnable(GL_TEXTURE_2D);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,Display.getWidth(),Display.getHeight(),0 ,1, -1);
glMatrixMode(GL_MODELVIEW);
由于没有人回答这个问题,我找到了一个解决方案,虽然效率可能很低,但这里是一个答案。
我改线了
glOrtho(0,Display.getWidth(),Display.getHeight(), 0 ,1, -1);
至
glOrtho(0,Display.getWidth(), 0,Display.getHeight(),1, -1);
这意味着顶部现在是屏幕底部,而不是顶部。然后我必须在我的盒子 class 中创建另一个变量,称为 realY
这是 box/quad 左角的实际 y 坐标。
然后用一些简单的数学运算 (this.realY = (Display.getHeight() - this.location[1])-this.size[1];
) 我将输入的 Y 转换为它自身的倒置版本,因此 0 成为屏幕的高度,反之亦然
对我来说,这似乎是一个低效的解决方案,更像是一种解决方法。如果谁有更好的答案,请post吧。
我在屏幕上绘制了一个四边形,位于屏幕顶部并居中。当我调整屏幕大小使其不那么高时,四边形似乎在与它应该的方向相反的方向上移动,即在我的显示器上以与它应该下降的速度相同的速度向上移动。
在渲染之前,它一直被设置在屏幕顶部并在每个循环中居中。
this.location[0] = (Display.getWidth()/2)-(this.size[0]/2);
this.location[1] = 0;
然后我渲染四边形并打印出它的 Y
位置。这始终如一 returns 0
,无论我将 window 调整为什么。通过打印出鼠标坐标,我可以确认屏幕顶部在调整大小时是 0
。为什么会这样,即使我将四边形设置在 0
,然后在 恰好在 之后渲染它,它仍然没有在 0
绘制?
有没有我不明白的 Opengl 或 LWJGL 概念?
这是 Opengl 设置代码。
GL11.glEnable(GL_TEXTURE_2D);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,Display.getWidth(),Display.getHeight(),0 ,1, -1);
glMatrixMode(GL_MODELVIEW);
由于没有人回答这个问题,我找到了一个解决方案,虽然效率可能很低,但这里是一个答案。
我改线了
glOrtho(0,Display.getWidth(),Display.getHeight(), 0 ,1, -1);
至
glOrtho(0,Display.getWidth(), 0,Display.getHeight(),1, -1);
这意味着顶部现在是屏幕底部,而不是顶部。然后我必须在我的盒子 class 中创建另一个变量,称为 realY
这是 box/quad 左角的实际 y 坐标。
然后用一些简单的数学运算 (this.realY = (Display.getHeight() - this.location[1])-this.size[1];
) 我将输入的 Y 转换为它自身的倒置版本,因此 0 成为屏幕的高度,反之亦然
对我来说,这似乎是一个低效的解决方案,更像是一种解决方法。如果谁有更好的答案,请post吧。