我正在开发一款扫雷游戏。我有两个问题,一个是重塑,另一个是图纸编号。我正在使用 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 中导入和绘制图像更好,如果是,我如何导入图像以使它们在调整窗口大小时不会失真。我不想要图像中的确切字体,但类似的东西会做。