我正在用 OpenGL 为学校编写游戏。由于会有更多类似的任务,我想制作一个小框架来在 OpenGL 中做常见的事情。我之前做过一些简单的游戏,我通常把它分解成一个 IO 类来处理输入和绘制到屏幕上,用于主游戏循环/逻辑的 Game 类,以及用于游戏中任何对象的类。
在我使用 SDL 之前,我的问题是,这是在 OpenGL 中进行此操作的正确方法吗?我已经遇到了一些麻烦。我希望我的 IO 类能够处理初始化窗口、绘制场景和单击鼠标。所以构造函数看起来像这样:
IO::IO()
{
currWindowSize[0] = DEF_WIDTH;
currWindowSize[1] = DEF_HEIGHT;
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA );
glutInitWindowPosition( INIT_WINDOW_POSITION[0], INIT_WINDOW_POSITION[1] );
glutInitWindowSize( currWindowSize[0], currWindowSize[1] );
glutCreateWindow( "TEST" );
setUp();
glutDisplayFunc(drawScene);
glutMainLoop();
}
但是,drawScene
是一个类方法。有没有办法将类方法传递给glutDisplayFunc()
而不使其成为静态?