gpt4 book ai didi

android - openGLES 中的触摸交互

转载 作者:行者123 更新时间:2023-11-29 22:17:10 25 4
gpt4 key购买 nike

我一直在探索 Nim Game在安卓系统上。玩家将从堆中取出元素。我使用 openGLES 绘制对象和堆。我卡住的地方是如何“接受”。
official dev guide 所示的 sample ,我可以在 extends GLSurfaceView 的类中覆盖 onTouchEvent 方法以进行交互。但是,我怎么知道对象是在哪里绘制的呢?还是我触摸的坐标处有什么物体?
有任何想法吗?
提前致谢!

最佳答案

如果我没有正确理解你的问题,听起来你想做一些简单的碰撞检测,看看你的触摸点是否在堆上的某个对象内。您可以使用触摸点坐标和您用来绘制对象的中心坐标之间的一些基本数学来做到这一点。

例如,假设您的对象是矩形,一般的想法是:

boolean detectCollision(Object object, TouchPoint touch) {
return object.x - object.width/2 <= touch.x &&
object.x + object.width/2 >= touch.x &&
object.y - object.height/2 <= touch.y &&
object.y + object.height/2 >= touch y;
}

然后您可以遍历堆中的所有对象,如果其中任何一个返回 true,那么您就知道您的接触点在该对象内部,并且可以继续调用您需要调用的任何对象。

请记住,系统为您提供的触摸坐标将是屏幕坐标,因此您必须考虑屏幕坐标系与您使用视锥体定义的坐标系之间的任何差异。

关于android - openGLES 中的触摸交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8194923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com