2011-05-18 35 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在需要時輪詢信息。