Как перехватить события сенсорного экрана в Android OpenGL ES? - PullRequest
1 голос
/ 28 марта 2011

Как именно вы перехватываете события сенсорного экрана для игр OpenGL ES для Android?Кроме того, если игра 3D, как вы узнаете, если пользователь коснулся объекта на заднем плане?Спасибо.

1 Ответ

7 голосов
/ 28 марта 2011

Переопределите 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;
    }

И чтобы узнать касание объекта пользователем, вы должны сравнить координаты события касания с координатами объекта.

...