我需要通过触摸屏创建x,y轴相机的移动/更改位置。我已经读过很多以前的问题,但没有注意到会解决我的问题。
我该如何使用此代码? :
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);
}}
答案 0 :(得分:1)
官方Android培训有一个例子(大多与你的相同): https://developer.android.com/training/graphics/opengl/touch.html 它还提供完整的来源。
顺便说一下 - 你永远不会在openGL中移动相机 - 你移动世界。 如需进一步了解,请阅读: http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/ 这可以让你更好地理解事情的运作方式......