Я пишу игру для школы в OpenGL. Поскольку будет еще несколько подобных заданий, я хочу создать небольшую структуру для выполнения общих задач в OpenGL. Я уже делал несколько простых игр и обычно делю их на классы ввода-вывода для обработки ввода и рисования на экране, класс Game для основной игровой петли / логики и классы для любых объектов, присутствующих в игре.
До того, как я использовал SDL, у меня такой вопрос: правильно ли это делать в OpenGL? Я уже столкнулся с некоторыми проблемами. Я хочу, чтобы мой класс ввода-вывода обрабатывал инициализацию окна, рисование сцены и щелчки мышью. Итак, конструктор выглядел так:
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()
, не делая его статичным?