2011-12-13 138 views
3

我剛學過OpenGL,並且正在開發使用OpenGL的遊戲。我不知道如何實現OnTouch事件爲圖像&移動圖像我使用OpenGL的文檔實例OpenGLES 0.1,但理智最多做如何實現OnTouch事件

回答

1

默認情況下,你可以使用下面的代碼處理的活動聯繫,

@Override 
     public boolean onTouch(View v, MotionEvent event) { 

      final float mouseSensitivity = 0.5f; 

      if(event.getAction()==MotionEvent.ACTION_DOWN){ 
       startX = event.getX(); 
       startY = event.getY(); 
      } else if(event.getAction()==MotionEvent.ACTION_UP){ 
       startX = 0.0f; 
       startY = 0.0f; 
      } else if(event.getAction()==MotionEvent.ACTION_MOVE){ 
       graphicsRenderer.rotate((startY - event.getY()) * mouseSensitivity,(startX - event.getX()) * mouseSensitivity); 
       startX = event.getX(); 
       startY = event.getY(); 
      } 

      return true; 
     } 

// Where startX and startY are global int variables; 

爲了處理超過GLSurface查看是否這樣,

class ClearGLSurfaceView extends GLSurfaceView { 
    public ClearGLSurfaceView(Context context) { 
     super(context); 
     mRenderer = new ClearRenderer(); 
     setRenderer(mRenderer); 
    } 

    public boolean onTouchEvent(final MotionEvent event) { 
     queueEvent(new Runnable(){ 
      public void run() { 
       mRenderer.setColor(event.getX()/getWidth(), 
         event.getY()/getHeight(), 1.0f); 
      }}); 
      return true; 
     } 

     ClearRenderer mRenderer; 
} 
1

請參見下面的代碼 -

@Override 
public boolean onTouchEvent(MotionEvent event) 
{ 
    mX = (int) event.getX(); 
    mY = (int) event.getY(); 
    return super.onTouchEvent(event); 
} 

而且,按照此tutorial.它可以幫助你。

3

首先你實現覆蓋方法onTouchMethod,然後你可以看到每一個動作的每一個動作,比如關於觸摸的向下,向上和移動。

@Override 
    public boolean onTouch(View v, MotionEvent event) { 

     if(event.getAction()==MotionEvent.ACTION_DOWN){ 
      Log.i(TAG,"Action Down"); 
     } else if(event.getAction()==MotionEvent.ACTION_UP){ 
      Log.i(TAG,"Action Up"); 
     } else if(event.getAction()==MotionEvent.ACTION_MOVE){ 
      Log.i(TAG,"Action Move"); 
     } 
     return true; 
    }