android - Opengl-es Android 和 TouchEvents

标签 android opengl-es touch

现在,我正在尝试创建一个简单的应用程序,当您在屏幕上移动它时,您的手指触摸到的地方会跟随一个正方形。我想使用 opengl-es 来做到这一点。我对它还很陌生,现在我坚持将触摸事件报告的窗口坐标映射到 opengl-es 拥有的笛卡尔平面坐标系。现在,为了获得 x 和 y 的翻译,我正在使用:

final int x = (e.getX()-(getWidth()/2))/(getWidth()/2) * SOME_SCALING_FACTOR;
final int y = ((getHeight()/2)-e.getY())/(getHeight()/2) * SOME_SCALING_FACTOR;

这背后的逻辑是我认为笛卡尔平面以屏幕为中心,所以我试图以这种方式重新映射我的触摸事件坐标。但是,我的结果非常不准确。 还有其他方法吗?

最佳答案

我不会在那里使用 SOME_SCALING_FACTOR。最好为它配置 OpenGL。

您可以使用下面的代码配置相机,然后进行绘图。

gl.glMatrixMode(gl.GL_PROJECTION);
gl.glLoadIdentity();
GLU.gluOrtho2D(gl, 0, WINDOWx, 0, WINDOWy);
gl.glMatrixMode(gl.GL_MODELVIEW);
gl.glLoadIdentity();

屏幕左下角为原点,左上角为(0,WINDOWy)等。

关于android - Opengl-es Android 和 TouchEvents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7112529/

相关文章:

opengl-es - 如何在 OpenGL-ES 中获取 VBO 的大小?

Android 顶点数组对象?

vba - TreeView 在点击时与点击时的行为不同

javascript - D3.js缩放和触摸设备平滑度

Android 提高了使用 JSON 数据填充表布局时的性能

android - 设置setBackgroundResource失败,只有应用在android中运行后才能成功

android - 如何从 Firebase 控制台使用自定义点击操作发送推送通知

android - adb shell dumpsys iphonesubinfo 自 Android 5.0 Lollipop 起无法正常工作

android - android 中 openGLES 着色器的任何好例子?

java - 启动画面 - 触摸即可跳过