#2 olcPixelGameEngine 2.0

15 подписчиков

12+
12+

11 просмотров

3 дня назад

ПожаловатьсяНарушение авторских прав

15 подписчиков

12+
12+

11 просмотров

3 дня назад

ПожаловатьсяНарушение авторских прав
12+
12+

11 просмотров

3 дня назад

olcPixelGameEngine 2.0 — это обновлённая версия лёгкого кроссплатформенного фреймворка для разработки 2D-игр и прототипов на C++. Его создал разработчик javidx9 для своего YouTube-канала OneLoneCoder. Building Web Based olcPixelGameEngine Applications using CMake and Emscripten - Что нового в версии 2.0 Основные улучшения коснулись производительности и удобства портирования на другие платформы. Одно из ключевых нововведений — примитив «декаль». Это динамический спрайт, который хранится на видеокарте. Благодаря этому рендеринг становится значительно быстрее, так как нагрузка переносится на GPU. Также были добавлены функции для работы со слоями для гибкой организации отрисовки. При этом версия 2.0 сохранила обратную совместимость с предыдущими релизами. Ключевые особенности Простота интеграции. Фреймворк реализован как единый заголовочный файл (olcPixelGameEngine.h), который достаточно включить в проект. Кроссплатформенность. Работает на Windows (Visual Studio, MinGW, Code::Blocks), Linux, Raspberry Pi, ChromeOS. Для macOS есть неофициальные порты. Базовая функциональность. Предоставляет инструменты для рисования (линии, круги, прямоугольники, треугольники, спрайты), обработки ввода с клавиатуры и мыши. Расширяемость. Можно легко добавлять поддержку 3D-рендеринга, звука, работы с контроллерами и других функций через расширения. Как начать работу Чтобы использовать движок, в вашем коде нужно определить флаг OLC_PGE_APPLICATION перед включением заголовочного файла. Затем вы создаёте класс, наследуемый от olc::PixelGameEngine, и переопределяете его виртуальные методы: OnUserCreate() — вызывается один раз при запуске приложения. OnUserUpdate(float fElapsedTime) — вызывается каждый кадр. OnUserDestroy() — вызывается при закрытии окна. github.com Пример базового скелета кода: class Example : public olc::PixelGameEngine { public: Example() { sAppName = "Example"; } bool OnUserCreate() override { // Инициализация ресурсов return true; } bool OnUserUpdate(float fElapsedTime) override { // Логика и отрисовка return true; } bool OnUserDestroy() override { // Очистка ресурсов return true; } }; int main() { Example demo; if (demo.Construct(256, 240, 4, 4)) // Ширина, высота окна, размер пикселя (4x4), полноэкранный режим, вертикальная синхронизация demo.Start(); return 0; } Важные ограничения Важно понимать, что сам по себе движок не предоставляет готовых решений для типичных игровых задач: загрузки ассетов, обнаружения коллизий, полноценной векторной математики. Эти аспекты разработчик должен реализовывать самостоятельно. Где найти документацию и примеры Официальная документация и примеры кода размещены в репозитории на GitHub.