私は現在、OpenGL を使用して基本を理解しようとしています。その時、私はその下にピラミッドがある Floating Cube をレンダリングしようとしました。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);