gpt4 book ai didi

java - java 中的 openGL : moving camera with TouchEvent

转载 作者:行者123 更新时间:2023-11-30 00:43:05 25 4
gpt4 key购买 nike

我需要通过触摸屏在 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);
}}

最佳答案

Official Android Training 有一个示例(大部分与您的示例相同): https://developer.android.com/training/graphics/opengl/touch.html它还提供完整的源代码。

顺便说一句 - 你永远不会在 openGL 中移动相机 - 你移动了世界。进一步了解请阅读: http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/这应该可以让您更好地了解事物的运作方式...

关于java - java 中的 openGL : moving camera with TouchEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42251252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com