2015-10-08 137 views
0

我正在製作這個圖形用戶界面,圖標應該始終保持在屏幕上的相同位置,並且我想讓它們在點擊它們時執行某些操作。鼠標在屏幕上的Java位置

在我來說,我做了這個整齊取消的象徵符號,我把我的LWJGL顯示屏的右上角 - 我做了這個代碼在這裏要啓用它點擊:

private void CloseIcon() 
{ 
    if(Input.GetMousePosition().GetX() > 1175 && Input.GetMousePosition().GetX() < 1215 && 
     Input.GetMousePosition().GetY() > 685 && Input.GetMousePosition().GetY() < 715) 
    { 
     if(Input.GetMouse(0)) { 
     System.out.println("closing porgram.."); 
     } 
    } 
} 

現在有是這個方法的兩個問題,我想知道如果有更好的方法來做到這一點?

問題1:當我改變顯示器的分辨率,或者如果我進入全屏顯然x和y的定義不再一樣 - 定義圖標位置的更好方法是什麼?

問題2:此刻我有圖標對象與相機一起移動,就像它始終停留在屏幕上的相同位置 - 仍然有更好的方法將對象放置在openGL中,以便始終保持在同一個地方,不管攝像頭在做什麼?

回答

1

好吧,如果你使用的是LWJGL,你可以從一開始你自己的分辨率定義,並沒有得到與升溫:

Display.setDisplayMode(new DisplayMode(width,height)); 
Display.create(); 

或全屏

Display.setDisplayMode(displayMode); 
Display.setFullscreen(true); 
Display.create(); 
+0

非常感謝,但由於我使用lwjgl,我無法使用Display.getWidth()和Display.getHeight? – DisasterCoder

+0

看到新的anwser ...所以你不會有任何麻煩來計算從「屏幕」/「窗口」的中間點,即使你改變屏幕分辨率。 –

+0

嗯是的,但是當我改變分辨率在一個點上的位置都會被搞砸......例如,如果我允許在程序運行時更改分辨率,那麼鼠標的所有位置都將出現在錯誤的playe ?? – DisasterCoder

相關問題