Я разрабатываю игру тральщика. У меня есть две проблемы: одна с изменением формы, а другая с рисованием чисел. Я использую 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);
Это моя функция display (), которую я передаю в glutDisplayFunc (), которая на самом деле рисует сетку, необходимую для игры тральщика.
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 ();
Я искал много форумов и, наконец, попробовал этот код для функции reshape () в glutReshapeFunc ()
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, и если да, то как мне импортировать изображения таким образом, чтобы они не искажались при изменении размера окна. Я не хочу точных шрифтов, как на картинке, но что-то подобное подойдет.
Задача ещё не решена.
Других решений пока нет …