[英]Quad moves when screen is resized verticly
我在屏幕上繪制了一個四邊形,位於屏幕頂部並居中。 當我調整屏幕大小使其不那么高時,四邊形似乎朝着與它應該的方向相反的方向移動,即,以相同的速度向上移動,它應該在我的顯示器上向下移動。
在渲染之前,它不斷被設置在屏幕頂部並居中每個循環。
this.location[0] = (Display.getWidth()/2)-(this.size[0]/2);
this.location[1] = 0;
然后我渲染四邊形並打印出它的Y
位置。 無論我將窗口大小調整為什么,這始終返回0
。 通過打印鼠標坐標,我可以確認屏幕頂部在調整大小時為0
。 為什么那么,即使我將四邊形設置為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);
這意味着頂部現在是屏幕的底部,而不是頂部。 然后我不得不在我的盒子類中創建另一個變量,稱為realY
,它是盒子/四邊形左手角的實際 y 坐標。
然后通過一些簡單的數學運算( this.realY = (Display.getHeight() - this.location[1])-this.size[1];
)我將輸入 Y 轉換為自身的倒置版本,因此 0 成為屏幕高度,反之亦然
對我來說,這似乎是一個低效的解決方案,而更像是一種解決方法。 如果有人有更好的答案,請發布。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.