OpenGL ES+iOSでポリゴンを描画した

renderメソッドの中だけを変更します。
「OpenGLで作るiPhone SDKゲームプログラミング」
この本で勉強しました。ソースコードはダウンロードできます。ここで掲載しません。
自分でカスタマイズしたものだけを書き込みます。

効果図

スクリーンショット 2014-09-20 18.51.31

画面の準備

この部分はrenderの中に直接コピペで、背景色を編集しても大丈夫です。

[EAGLContext setCurrentContext:context];

glBindFramebufferOES(GL_FRAMEBUFFER_OES, defaultFramebuffer);
glViewport(0, 0, backingWidth, backingHeight);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(-1.0f, 1.0f, -1.5f, 1.5f, 0.5f, -0.5f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
//背景を黒色に設定
glClear(GL_COLOR_BUFFER_BIT);

ポリゴン描画と移動

ポリゴンのサイズと色を設定

GLfloat squareVertices[] = {
    -0.5f + transformer, -0.33f,
     0.5f - transformer, -0.33f,
    -0.5f - transformer,  0.33f,
    0.5f + transformer,  0.33f,
};
//ポリゴンの頂点の座標値
//transformerはY座標を変更し、台形でポリゴンを変えます。
//static float transX = 0.0f;
//float transformer = sinf(transX)/8.0f;

GLubyte squareColors[] = {
    randI(), randI(),randI(),randI(),
    randI(), randI(),randI(),randI(),
    randI(), randI(),randI(),randI(),
    randI(), randI(),randI(),randI(),
};
//色の設定。
//マクロで数値を生成:
//#define randF() ((float)(rand() % 1001) * 0.001f)

ポリゴンの描画

glDrawArraysはポリゴンを描画するメソッド。
GL_TRIANGLE_STRIPはすべての頂点を結ぶモード、
他にはGL_TRIANGLES(三角形)とGL_LINES(直線)もあります。
最後の引数4は描画するポリゴンの頂点数です。

glVertexPointer(2, GL_FLOAT, 0, squareVertices);
glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, squareColors);
glEnableClientState(GL_COLOR_ARRAY);

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

ポリゴンの移動

transYは静的変数で、位置変動は差を表す。
画面が自動更新され、renderで描画し直すときは、
ポリゴンの位置はtransYによって位置も変わります。

glTranslatef((GLfloat)(cosf(transY+0.005f)/4.0f), (GLfloat)(sinf(transY)/2.0f), 0.0f);
transY += 0.015f;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>