相机运动。我该如何移动相机?

时间:2011-01-17 01:09:32

标签: android opengl-es camera

我目前有一个开放式gl渲染器设置,显示一个2d方形和另一个2d形状。通过使用键,用户可以向左和向右移动方块。这是通过基于用户是否按下向左下方改变的值来翻译方块来完成的,例如,如果用户按下右边,则意味着gl.glTranslatef的翻译(rightdisplacement,0,0);运动工作正常,但我无法弄清楚如何让相机跟随广场继续移动。我想移动广场,让相机朝同一方向移动。

1 个答案:

答案 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