Демка с Марио на бесплатных ассетах на чистом OpenGL ES 2.0, Qt C++, Box2D, OpenAL для Android, Windows и WebAssembly
Запись от 8Observer8 размещена 22.05.2024 в 17:50
Показов 1453
Комментарии 0
Содержание блога Следующую демку с Марио на бесплатных ассетах я написал на С++ на чистом OpenGL ES 2.0 с использованием C++-фреймворка Qt 6. Собрал исполняемые файлы для Android, Windows и WebAssembly (для запуска в браузере). В демке использую Box2D для: передвижения, прыжка, определения столкновений и пуска лучей. Добавил Box2D в проект прямо исходниками. Box2D имеет класс b2Draw переопределив методы которого можно рисовать коллайдеры имея координаты вершин, которые выдают методы класса b2Draw. Добавление Box2D исходниками позволяет собирать из одной кодовой базы для Android, Desktop и APK. Подключил библиотеку OpenAL-Soft для музыки и звуков. Подключил OpenAL-Soft для Desktop можно собрать в WebAssembly и будет работать на Web - видимо OpenAL транслируется в Web Audio API. На OpenAL и Web Audio API можно делать 3D звуки, то есть можно слышать где находится источник звука в том числе на Android если телефон поддерживает стерио - особенно это хорошо работает в наушниках. Спрайты упаковал в один атлас с помощью бесплатной программы Free Texture Packer (сайт открывается через VPN), а карту нарисовал и расставил статические коллайдеры в бесплатном редакторе игровых карт Tiled Map Editor. Очень рекомендую скачать эти программы. Особенно Tiled - очень упращает и ускоряет создание игровых уровней. Их можно использовать для любых игровых библиотек, фреймворков и движков. Эти программы экспортируют в JSON, для которого есть встроенный парсер в Qt. Кнопки нарисовал на чистом OpenGL ES 2.0. Шрифт тоже рисуется на чистом OpenGL ES 2.0. Здесь текст с distance field. Можете в YouTube набрать "thinmatrix distance field" и найдете следующие видео: OpenGL 3D Game Tutorial 33: Distance Field Text Rendering, в начале которого на первых нескольких минутах поймёте, что это. Выводится текст на английском руссском и китайском языках.
Для записи gif-анимации вывел экран телефона на ноутбук с помощью бесплатной программы scrcpy, а анимацию записал с помощью бесплатной программы ScreenToGif В демке используются бесплатные ассеты: |
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.