2011-02-03 15 views
0

私がしようとしている私は私のiPhoneゲームでカメラを移動するためにgluLookAtを使用しようとしているが、私は私の画面をgluLookAt使用しようとしたすべての時間だけで(この場合は灰色)「空白」になりgluLookAtを使用して2D iPhoneゲームでカメラを移動しますか?

GLfloat triangle[] = {0, 100, 100, 0, -100, 0,}; 
glClearColor(0.7, 0.7, 0.7, 1.0); 
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
glEnableClientState(GL_VERTEX_ARRAY); 
glColor4f(1.0, 0.0, 0.0, 1.0); 
glVertexPointer(2, GL_FLOAT, 0, &triangle); 
glDrawArrays(GL_TRIANGLES, 0, 6); 
glDisableClientState(GL_VERTEX_ARRAY); 

glViewport(0, 0, backingWidth, backingHeight); 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glRotatef(-90.0, 0.0, 0.0, 1.0); //using iPhone in horizontal mode 
glOrthof(-240, 240, -160, 160, -1, 1); 
glMatrixMode(GL_MODELVIEW); 

その後、私の「三角形のレンダリング」のコードは次のようになります。私のシーンは私が行うセットアップへ

:シンプルな三角形をレンダリングし、カメラを移動するために、これは私のコードです

これは私がgluLookAtを(私はので、私はそれが正しいですasume Cocos2Dから関数の実装を得た)を適用しようとしたとき、私は、画面中央の赤い三角形を描画します。

glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
gluLookAt(0,0,1,0,0,0,0,0,1); // try to move the camera a bit ? 

GLfloat triangle[] = {0, 100, 100, 0, -100, 0,}; 
glClearColor(0.7, 0.7, 0.7, 1.0); 
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
glEnableClientState(GL_VERTEX_ARRAY); 
glColor4f(1.0, 0.0, 0.0, 1.0); 
glVertexPointer(2, GL_FLOAT, 0, &triangle); 
glDrawArrays(GL_TRIANGLES, 0, 6); 
glDisableClientState(GL_VERTEX_ARRAY); 

これは私をリード(glClearColorは灰色です)、私はあらゆる種類のものを試してみましたが、ネット上でgluLookAtについて見つかったものを読みましたが、運がない:(誰かが私に説明したり、カメラをトップダウンで(ゼルダなど)、私は本当にそれを感謝します。

ありがとうございます!

答えて

0

最後の3つの引数が正しく表示されません。正のZ方向に「上」のベクトルを作成しています。これは、ビューの方向が三角形の平面に平行である(三角形が見えなくなる)ことを意味します。あなたは試みることができる:

gluLookAt(0,0,1,0,0,0,0,1,0); 

をしかし、あなたがしたいすべては、あなたが同じように、代わりにglTranslatefを使用することができ、アップ/ダウン/右/左のビューを移動された場合:

べき
glTranslatef(100.0f, 20.0f, 0.0f); 

三角形を右に100ピクセル、上に20ピクセルにします。

関連する問題