【发布时间】:2013-02-01 08:34:48
【问题描述】:
我目前正在尝试通过 OpenGL 来了解基础知识。 当时我尝试渲染一个带有金字塔的浮动立方体。我希望 Cube 在 Input 上旋转(它已经在工作)并且 Pyramid 保持在它应该在的位置。
在弄清楚Push- 和PopMatrix 的用法后,我设法只旋转了立方体。
我的问题是,只要我松开钥匙,立方体就会停止旋转。
player.X 和 Player.Z 不会在此时重置(检查)。
所以我的猜测是PushMatrix 将某种标准矩阵放入堆栈,然后旋转并显示它。因为1 * x 总是等于x,所以没有旋转。
所以问题是: 我如何设法将“旧”矩阵推入堆栈,而不是新矩阵?
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glPushMatrix();
glRotatef( -(player->Z), 1.0f, 0.0f, 0.0f );
glRotatef( -(player->X), 0.0f, 1.0f, 0.0f );
glBegin( GL_QUADS );
//Draw Cube
glEnd();
glPopMatrix( );
glBegin( GL_TRIANGLES );
//Draw Pyramid
glEnd();
glFlush();
SwapBuffers (hDC);
【问题讨论】: