在GLES Renderer类中覆盖onTouchEvent函数?

时间:2011-05-18 19:39:45

标签: android opengl-es

我试图用Android上的Gles做一个简单的游戏。

我已经搜索了很多解决方案,但我找不到任何人提到如何在GLES中实现ontouchevent。

在这里我是如何实现它到目前为止...我知道这是一个愚蠢的方式来做到这一点:D但这只是我可以在没有攻击的情况下设置positionx变量的方式

我的渲染器类的简短摘要......

public class GLmain implements Renderer {
public float mX,mY;
public boolean clicked;
public GLmain() 
    {
    clicked=false;
    }
    public void onDrawFrame(GL10 gl) {
      if(clicked)
      {
      positionx=mX;
      positiony=mY;
      clicked=false
      }
    }
}

in和Activity class

public class Alpha extends Activity {
private GLSurfaceView glSurface;
public float mousex,mousey;
public GLmain glrend=new GLmain();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    glSurface = new GLSurfaceView(this);    
    glSurface.setRenderer(glrend);
    setContentView(glSurface);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
    glrend.clicked=true;
    glrend.mX=event.getX();
    glrend.mY=event.getY();
    return true;
}}

1 个答案:

答案 0 :(得分:1)

这不是一个愚蠢的方式!您无法直接调用渲染器,因为它位于不同的线程上,因此您需要在需要时对信息进行渲染轮询。