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

Ani*_*RNG 1 3d android opengl-es touchscreen

您究竟如何拦截Android中OpenGL ES游戏的触摸屏事件?此外,如果游戏是3D,你怎么知道用户是否触摸了背景中的物体?谢谢.

Moh*_*hit 7

将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;
    }
Run Code Online (Sandbox Code Playgroud)

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