2017-02-15 1 views
1

タッチスクリーンでx、y軸を使ってカメラの移動/変更位置を作成する必要があります。私は以前の質問の多くを読んだことがありますが、私の問題を解決するものには何も気づいていませんでした。JavaでopenGL:TouchEventを使ってカメラを動かす

このコードはどのように使用できますか? :それはまた、完全なソースを提供しています https://developer.android.com/training/graphics/opengl/touch.html

class ESSurfaceView extends GLSurfaceView { 

private final float TOUCH_SCALE_FACTOR = 180.0f/320; 
private float mPreviousX; 
private float mPreviousY; 

@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; 

      if (y > getHeight()/2) { 
       dx = dx * -1 ; 
      } 

      if (x < getWidth()/2) { 
       dy = dy * -1 ; 
      } 

      GLRenderer.setAngle(
        GLRenderer.getAngle() + 
          ((dx + dy) * TOUCH_SCALE_FACTOR)); 
      requestRender(); 
    } 

    mPreviousX = x; 
    mPreviousY = y; 
    return true; 
} 

public ESSurfaceView(Context context) 
{ 
    super(context); 

    setEGLContextClientVersion(2); 
    GLRenderer renderer = new GLRenderer(); 
    setRenderer(renderer); 

    // Render the view only when there is a change in the drawing data 
    //setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); 
}} 

答えて

1

オフィシャルAndroidのトレーニングは(ほとんど同じように、あなたに)そのための例があります。

ところで、あなたはOpenGLでカメラを動かすことはありません。あなたは世界を動かすでしょう。 さらに理解を深めるために、 http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/ これはあなたに物事がどのように働くかについてのより良い理解を与えるはずです。

関連する問題