我目前有一个开放式gl渲染器设置,显示一个2d方形和另一个2d形状。通过使用键,用户可以向左和向右移动方块。这是通过基于用户是否按下向左下方改变的值来翻译方块来完成的,例如,如果用户按下右边,则意味着gl.glTranslatef的翻译(rightdisplacement,0,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