问题很简单,如何识别用户在OpenGL中触摸了哪个对象。 我已经尝试了utilizat envento onTouchEvent,但这只返回了可能的X,Y屏幕。
答案 0 :(得分:2)
在这个帖子中提出了一个类似的问题(并且已经回答): Detect user's touches over an OpenGL square
基本上有两种方法:1将所有对象渲染为所有不同颜色的缓冲区,然后在指定的“拾取坐标”处查看颜色信息以识别您的对象。 另一个(我认为资源消耗较少)是检索'ray',然后使用为当前在屏幕上呈现的所有对象提供的边界框进行命中测试。
编辑: 如果你正确地进行渲染/ 2d,那么这有点简化了事情。 您可以使用您触摸的点和您为所绘图像提供的矩形(或者可能是圆形或多边形)进行简单的命中测试。
希望这有帮助。