hermemo-エルメモ-

情報の神の備忘録

OpenGLで自己学習型オセロAI  §1「ボードの描写」

time 2017/01/25

OpenGLで自己学習型オセロAI  §1「ボードの描写」

sponsored link

目標

今回のsectionではボードの描写を行います。

ソースコード

実行結果

動作は特にありません。表示されれば完了です。

解説

メイン関数[44]-[57]

[44]int main(int argc, char *argv[])
[46]glutInit(&argc, argv);
基本的にはglutを使う上での決まりごとと覚えていいみたいです。
細かく説明するとコマンドラインオプションというもので、OSが実行時に引数を渡します。

[47]glutInitDisplayMode(GLUT_RGBA);
ディスプレイのモードを指定しています。今回はRGBAモードを使用しますが、他にも色々種類はあります。

[48]glutInitWindowSize(1200,800);
ウィンドウのサイズを設定します。初めの引数が横方向、二つ目が縦方向。
今回は800×800の盤面に加えて横に400の色々を表示するスペースを用意します。
[49]glutCreateWindow(“自己学習型オセロAI”);
ウィンドウを作成します。サイズは[38]で定義されています。引数にウィンドウのタイトルを渡します。
[50]gluOrtho2D(0, 1200, 800,0);
2D表示を行なっていく際の座標を設定しています。今回は初期のウィンドウのサイズをそのまま使用します。
[51]glClearColor(0.1, 0.7, 0.1, 1.0);
カラー情報のバッファの色を設定します。単に背景の色と考えたので差し支えありません。詳しくは[10]で。
引数として色と透明度を渡します。
(Red, Green, Blue, Alpha)
[53]glutDisplayFunc(display);
描写の関数を設定します。引数は任意の関数です。今回は[display]という関数を[8]-[29]で定義しているのでそれを設定します。
[55]glutMainLoop();
glutのメインループに入ります。

描画関数[17]-[38]

点や線などを描画します。今回はここでボードの線を描画しますが、今後石などもここで描画させます。

[19]glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
バッファの初期化を行います。今回はカラーとデプスのバッファを初期化します。

[22]glColor3f(0,0,0);
色を設定します。[15]などでは直前に設定された色が使用されます。なお、似た関数に”glColor3d”, “glColor3i”などがありますが、これは一番最後の文字で使用する値の種類を設定しています。

glColor3ffloat
glColor3ddouble
glColor3i int


[23]glLineWidth(2);
ラインの幅を設定します。初期値は1です。これも[13]と同様[15]などは直前の値を参照します。

[24]glBegin(GL_LINES);
[35]glEnd();
描画を行います。[15]から[26]の間で描画を行います。
今回は線なのでGL_LINESを使用しますが、何種類かあります。

[26,27][29,30][33,34]glVertex2i(x,y);
glVertex2i(x,y)は2つ1組みで線を座標を設定します。[17]で設定した座標から[18]で設定した座標まで線を引きます。語尾のiは[13]と同じ意味です。

[37]glutSwapBuffers();
glutでまだ行われていない処理を実行します。これによって[13]-[26]で行なった処理が反映されます。

次回予告

次回は石の描写を行なっていきます。

最後に

OpenGLやGLUTを学びつつ布教するために記事を作成しています。
何かわからないことやご指摘がございましたら気軽にコメントをお願いします。

sponsored link

down

コメントする




*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)



sponsored link