2011-05-18 74 views
0

即时通讯试图在Android上与Gles进行一个简单的游戏。覆盖GLES Renderer类中的onTouchEvent函数?

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

这里我我是如何实现它那么远,我知道这是做一个愚蠢的方式:d但这是唯一的办法我能想出设置位X变量免费的,而没有攻

一我的渲染器类的简要...

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 
     } 
    } 
} 

和活动类

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

这不是做一个愚蠢的方式!您不能直接调用Renderer,因为它位于不同的线程中,所以您需要让Renderer在需要时轮询信息。