Android 摄像机运动。如何移动相机?
我目前有一个OpenGL渲染器设置,它显示一个2d正方形和另一个2d形状。通过使用这些键,用户可以左右上下移动正方形。这是通过基于用户是否按上下左右键而改变的值平移正方形来实现的,例如,如果用户按右键,则表示gl.glTranslatef(rightdisplacement,0,0)的平移;等等。运动很好,但我不知道如何让相机在继续运动时跟随正方形。我想移动正方形并使相机朝同一方向移动。如果您正在进行2D渲染,您可能正在调用某个地方来定义坐标系。完全是推测,但您的代码可能看起来像:Android 摄像机运动。如何移动相机?,android,opengl-es,camera,Android,Opengl Es,Camera,我目前有一个OpenGL渲染器设置,它显示一个2d正方形和另一个2d形状。通过使用这些键,用户可以左右上下移动正方形。这是通过基于用户是否按上下左右键而改变的值平移正方形来实现的,例如,如果用户按右键,则表示gl.glTranslatef(rightdisplacement,0,0)的平移;等等。运动很好,但我不知道如何让相机在继续运动时跟随正方形。我想移动正方形并使相机朝同一方向移动。如果您正在进行2D渲染,您可能正在调用某个地方来定义坐标系。完全是推测,但您的代码可能看起来像: glOrth
glOrtho(0,屏幕宽度,0,屏幕高度,-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
如果您正在进行2D渲染,则可能需要调用某个地方来定义坐标系。完全是推测,但您的代码可能看起来像:
glOrtho(0,屏幕宽度,0,屏幕高度,-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