2015-10-08 101 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

相关问题