如何拦截在Android的OpenGL ES的触摸屏事件? [英] How to intercept touchscreen events in Android OpenGL ES?

查看:153
本文介绍了如何拦截在Android的OpenGL ES的触摸屏事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何你到底拦截触摸屏事件OpenGL ES的游戏在Android的?此外,如果游戏是3D的,你怎么知道,如果用户触摸在背景上的对象?谢谢你。

How exactly do you intercept touchscreen events for OpenGL ES games in Android? Also, if the game is 3D, how do you know if the user touched an object in the background? Thanks.

推荐答案

覆盖的onTouchEvent(MotionEvent E)为扩展GlsurfaceView类。

Override onTouchEvent(MotionEvent e) into your class extending 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;
    }

和了解用户对象摸你应该比较触摸事件对象的坐标的坐标。

And to know the object touch by user you should compare touch event coordinates with object coordinates.

这篇关于如何拦截在Android的OpenGL ES的触摸屏事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆