Comments 26
так продакшен в готовых движках на 4 порядка лучше будет, чем рисование полигонов на экране уровня конца 90х
Ага, а после такого выходят игры на юнити, в которых "пиксельный" спрайт в 16*16 крупных пикселей рисуется как здоровенная текстура типа 128*128, потому что разработчик не осилил параметры фильтрации текстур.
glfw и прочее это прошлый век, никто сейчас не теряет на это время.
Я искренне не вижу смысла тащить чужую архитектура движка и ненужные модули для каких-то небольших проектов.
И тем более глупо использовать Unity/UE для какой-нибудь 2D игры, где от OpenGL'а требуется лишь отрисовка текстур и, может быть, освещения. В таких случаях небольшой самописный рендер уменьшит размер и увеличит скорость загрузки игры на порядок.
игровой цикл
Мне кажется, понятие «игровой цикл» значит чуть другое. Я понимаю, что это перевод и в оригинале написано именно так, но, поправьте если ошибаюсь, game loop – это основной цикл обработки всего. Начиная с графики и заканчивая network-манипуляциями.
Убедитесь в том, что подключение GLEW происходит раньше GLFW. Заголовочный файл GLEW содержит в себе подключение всех необходимых заголовочных файлов OpenGL, таких как GL/gl.h
Видимо, какой-то устаревший костыль.
GLFW последней стабильной версии сам прекрасно подключает все нужные заголовки, если не объявлен макрос GLFW_INCLUDE_NONE, а он по умолчанию не объявлен.
Создал окно 720x720. Но почему-то glfwGetFramebufferSize() возвращает мне 1440x1440. Хотя окно выглядит как 720x720, но OpenGL рисует правильно только при glViewport(1440x1440), а при 720х720 смещается к началу (в левый нижний угол окна).
Может кто знает, в чем дело?
Нужно отслеживать состояние клавиш между событием нажатия и отжатия, и каждый шаг логики в зависимости от состояний клавиш выполнять небходимые действия.
Т.е. получили GLFW_PRESS на W, записали это состояние как активное в переменную или контейнер. Получили GLFW_RELEASE на W, записали это состояние как неактивное в переменную или контейнер. А в цикле логики проверяем записанное состояние, и если оно активно, то например двигаем персонажа вперед.
Можно конечно и напрямую в цикле логики опрашивать состояние каждой клавиши c помощью функции glfwGetKey. Вроде она состояния из внутреннего массива берет.
learnopengl. Урок 1.3 — Hello Window