如何在Android OpenGL ES中拦截触摸屏事件?

如何在Android OpenGL ES中拦截触摸屏事件?,android,opengl-es,3d,touchscreen,Android,Opengl Es,3d,Touchscreen,如何准确地拦截Android中OpenGL ES游戏的触摸屏事件?另外,如果游戏是3D的,你如何知道用户是否触摸了背景中的物体?谢谢。将onTouchEvent(MotionEvent e)重写到扩展GlsurfaceView的类中 @Override public boolean onTouchEvent(MotionEvent e) { float x = e.getX(); float y = e.getY(); switch (e.ge

如何准确地拦截Android中OpenGL ES游戏的触摸屏事件?另外,如果游戏是3D的,你如何知道用户是否触摸了背景中的物体?谢谢。

将onTouchEvent(MotionEvent e)重写到扩展GlsurfaceView的类中

  @Override public boolean onTouchEvent(MotionEvent e) {
        float x = e.getX();
        float y = e.getY();
        switch (e.getAction()) {
        case MotionEvent.ACTION_MOVE:
            float dx = x - mPreviousX;
            float dy = y - mPreviousY;
            mRenderer.mAngleX += dx * TOUCH_SCALE_FACTOR;
            mRenderer.mAngleY += dy * TOUCH_SCALE_FACTOR;
            requestRender();
        }
        mPreviousX = x;
        mPreviousY = y;
        return true;
    }
要了解用户触摸的对象,应将触摸事件坐标与对象坐标进行比较

将onTouchEvent(MotionEvent e)重写到扩展GlsurfaceView的类中

  @Override public boolean onTouchEvent(MotionEvent e) {
        float x = e.getX();
        float y = e.getY();
        switch (e.getAction()) {
        case MotionEvent.ACTION_MOVE:
            float dx = x - mPreviousX;
            float dy = y - mPreviousY;
            mRenderer.mAngleX += dx * TOUCH_SCALE_FACTOR;
            mRenderer.mAngleY += dy * TOUCH_SCALE_FACTOR;
            requestRender();
        }
        mPreviousX = x;
        mPreviousY = y;
        return true;
    }

要了解用户触摸的对象,应将触摸事件坐标与对象坐标进行比较

谢谢。此外,如果用户触摸对象所在的屏幕,X和Y坐标是否相同,但Z坐标是否不同?你可以在屏幕上画一条直线,它会与物体相交。谢谢。此外,如果用户触摸对象所在的屏幕,X和Y坐标是否相同,但Z坐标是否不同?比如,你可以在屏幕上画一条直线,它会与物体相交。