2011-01-17 5 views
1

현재 열린 gl 렌더러는 2d 사각형과 다른 2d 모양을 표시하도록 설정되어 있습니다. 키를 사용하여 사각형을 왼쪽과 오른쪽으로 움직일 수 있습니다. 이것은 사용자가 오른쪽 아래로 누를 지 여부에 따라 변경되는 값을 기반으로하는 사각형을 변환하여 수행됩니다. 예를 들어 사용자가 오른쪽을 누르면 gl.glTranslatef (rightdisplacement, 0, 0)의 번역을 의미합니다. 운동은 잘 작동하지만 카메라가 계속 움직이면서 사각형을 따라갈 수있는 방법을 알아낼 수 없습니다. 나는 사각형을 움직이고 카메라가 같은 방향으로 움직이게하고 싶습니다.카메라 움직임. 카메라를 어떻게 이동합니까?

답변

1

2D 렌더링을하는 경우 glOrtho을 호출하여 좌표계를 정의 할 수 있습니다. 당신이 당신의 카메라 위치를 정의하는 곳입니다

glOrtho(0, screenWidth, 0, screenHeight, -1, 1);

: 총 추측하지만, 코드가 같을 수 있습니다. 카메라 위치 x와 y 위치 변수를 만들고 대신

glOrtho(camX - screenWidth/2, camX + screenWidth/2, camY - screenHeight/2, camY + screenHeight/2, -1, 1); 

이 분명히 변경됩니다 카메라 위치 등의 모든 프레임을 호출되어 있는지 확인 전화. 렌더링 코드는 다음과 같을 수 있습니다.

// clear framebuffer 

glMatrixMode(GLES10.GL_PROJECTION);     
glLoadIdentity();   
glOrtho(camX - screenWidth/2, camX + screenWidth/2, camY - screenHeight/2, camY + screenHeight/2, -1, 1); 

glMatrixMode(GLES10.GL_MODELVIEW);     
glLoadIdentity(); 

// draw your stuff