2011-01-17 9 views
1

現在、開いているglレンダラーをセットアップして、2dの正方形ともう1つの2dの形を表示しています。キーを使用することにより、ユーザはスクエアを左右に動かすことができます。これは、ユーザーが右下を押したかどうかによって変わる値に基づいて四角形を変換することによって行われます。たとえば、ユーザーが右を押すと、gl.glTranslatef(rightdisplacement、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         
関連する問題