2011-07-30 86 views
2

这听起来很明显,但我怎么才能找到沿着屏幕边缘的点,以便知道移动物体是否碰到了屏幕边缘。寻找屏幕的边缘android

三江源

+0

是=)是我做 – Jack

回答

2

鉴于你有正投影,你可以很容易地知道你的边缘通过了解你传递到glOrtho()函数的值。

例如,考虑这一行:

glOrtho(0.0f, width, 0.0f, height, 0.0f, 1.0f); 

在这里,您可以决定单个持股量将有多大的影响力在你的计划。你可以找到更多关于这个here的信息。

但是,在这种情况下,您的左边缘是0.0,您的底边是0.0。您的上边缘由高度定义,您的右边缘由宽度定义。

通过这种方式,您不必依赖特定的屏幕尺寸,因为您的世界将永远与您定义的一样大。例如,您不需要通过宽度高度参数来定义拼写的宽度和高度,而是使用一些数据来告诉您的应用程序您的世界应该有多大。

+0

挂在gl.glViewport(0,0,宽度,高度)返回屏幕的宽度和高度? – Jack

+0

使用'glViewport()'调用您告诉OpenGL您在屏幕上呈现信息的位置。 – Wroclai

+0

'gl.glGetIntegerv(GL11.GL_VIEWPORT,viewport,0);'如果viewport为'int viewport [4]''是否正确?因为有了这些变量glOrthof似乎返回一个空白屏幕。 =( – Jack

0

只是这样做:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight();
+0

在OpenGL的上下文中(正如标签所暗示的),由于opengl视图的坐标空间不同于父视图,因此打开的gl视图可能不会跨越整个屏幕。 – gregghz