マインスイーパゲームを開発しています。1 つは形状の変更、もう 1 つは描画番号に関する 2 つの問題です。Ubuntu Linux を使用しています。以下はコード スニペットで、コード全体は次のとおりです。
これは、main() の開始時に記述した初期化コードです。
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (400, 300);
glutCreateWindow ("MineSweeper");
glClearColor (1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
これは、マインスイーパ ゲームに必要なグリッドを実際に描画する glutDisplayFunc() に渡す私の display() 関数です。
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0.0, 0.0, 0.0);
glLineWidth (3);
float i;
for(i = step; i< 1; i+=step) {
glBegin(GL_LINES);
glVertex3f(i,0,0);
glVertex3f(i,1.0,0);
glEnd();
glBegin(GL_LINES);
glVertex3f(0,i,0);
glVertex3f(1.0,i,0);
glEnd();
}
glFlush ();
私は多くのフォーラムを検索し、最終的に glutReshapeFunc() の reshape() 関数のこのコードを試しました
void reshape (int width, int height) {
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, width, 0, height, -1.0, 1.0);
glFlush();
}
しかし、それは機能せず、出力は平面ウィンドウでした。
また、以下に示すように、さまざまな色で数字をフォント スタイルで表示したいと考えています。
ビットマップ フォントを見てきましたが、私のニーズには十分ではありません。また、フォントを使用するか、OpenGL 関数を使用して手動で描画するか、OpenGL で画像をインポートして描画する方が良いですか。そうであれば、ウィンドウのサイズ変更時に画像が歪まないように画像をインポートするにはどうすればよいですか。画像のように正確なフォントは必要ありませんが、同様のフォントが必要です。