簡體   English   中英

當屏幕垂直調整大小時四邊形移動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM