Opengl-es для Android и TouchEvents - PullRequest
       19

Opengl-es для Android и TouchEvents

1 голос
/ 18 августа 2011

Прямо сейчас я пытаюсь создать простое приложение, в котором квадрат следует за тем, где ваш палец касается, когда вы перемещаете его по экрану.Я хотел бы сделать это с помощью opengl-es.Я довольно новичок в этом, и сейчас я застрял в отображении координат окна, сообщаемых событием касания, в декартову плоскую систему координат, которую имеет opengl-es.Прямо сейчас, чтобы получить перевод x и y, я использую:

final int x = (e.getX()-(getWidth()/2))/(getWidth()/2) * SOME_SCALING_FACTOR;
final int y = ((getHeight()/2)-e.getY())/(getHeight()/2) * SOME_SCALING_FACTOR;

Логика заключается в том, что я думаю, что декартова плоскость центрирована вокруг экрана, поэтому я пытаюсь повторно отобразить свое касаниекоординаты события таким образом.Однако мои результаты очень неточны.Есть ли другой способ, которым я должен делать это?

1 Ответ

3 голосов
/ 22 августа 2011

Я бы не использовал SOME_SCALING_FACTOR там. Для него лучше настроить OpenGL.

Вы можете использовать приведенный ниже код для настройки камеры, а затем рисовать.

gl.glMatrixMode(gl.GL_PROJECTION);
gl.glLoadIdentity();
GLU.gluOrtho2D(gl, 0, WINDOWx, 0, WINDOWy);
gl.glMatrixMode(gl.GL_MODELVIEW);
gl.glLoadIdentity();

Левая нижняя точка экрана будет исходной, левая верхняя - (0, WINDOWy) и т. Д.

...