用手指移动OpenGL对象

时间:2010-11-09 18:37:24

标签: android opengl-es event-handling java-native-interface

我正在使用OpenGL和JNI开发一个Android应用程序(所有OpenGL内容都是C代码)。

想象一下,我画了一个立方体。我希望用户可以将手指伸到立方体上,然后旋转立方体并将其移动到屏幕上。

有没有办法做到这一点?

如何仅在用户触摸多维数据集时指定事件侦听器才能触摸和移动事件?

更新
我想要这样的事情:

Rotate cube with fingers

感谢。

1 个答案:

答案 0 :(得分:1)

这在3d-ville中被称为“挑选”...有许多关于这个主题的教程漂浮在这里和yon。在StackOverflow上还有另一个问题(没有JNI旋转)。

另外,查看有关开发安卓游戏的this google IO video,看看为什么你的方法可能不比纯Java更快......它取决于。

事实证明,JNI调用相当昂贵,因此基于JNI的渲染器最终可能比纯java渲染慢,除非你非常小心。 YM V。

我很确定你必须听取所有接触,然后根据被触摸的内容改变行为。我想你可以在屏幕上计算你的立方体的边界框,然后每一帧(或每次移动)与你的听众一起做猴子,但我很怀疑这将是最有效的课程。倾听所有接触,做出适当的反应。