Phaser

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Phaser — это фреймворк для 2D-игр, используемый для создания игр HTML5 для компьютеров и мобильных устройств[1]. Это бесплатное программное обеспечение, разработанное Photon Storm[2].

Phaser использует внутренние средства визуализации Canvas и WebGL и может автоматически переключаться между ними в зависимости от поддержки браузера. Это обеспечивает быстрый рендеринг на компьютерах и мобильных устройствах. Он использует библиотеку Pixi.js для рендеринга.

Игры можно развернуть на iOS, Android и в нативных приложениях для компьютера с помощью сторонних инструментов, таких как Apache Cordova и phonegap[3].

История[править | править код]

Ричард Дэйви объявил о первом релизе Phaser в своем блоге в апреле 2013 года[4]. В сентябре была выпущена версия 1.0, включающая библиотеку Pixi.js для рендеринга[5].

Последней официальной версией Phaser 2 была 2.6.2, но для улучшения стабильной версии во время работы над Phaser 3 был создан новый репозиторий: Phaser CE (Community Edition)[6]. Таким образом, Phaser CE в настоящее время является рекомендуемой стабильной платформой для разработки с использованием Phaser.

Phaser 3.0.0 был выпущен 13 февраля 2018 г., и разработка до сих пор продолжается на GitHub[7]. Большинство элементов и функций платформы были построены с нуля с использованием полностью модульной структуры и подхода, ориентированного на данные. Phaser 3 появился совершенно новый пользовательский рендерер WebGL, разработанный для современных 2D-игр. С тех пор большая часть документации и примеров для пользователей была завершена, и реализовано большинство функций.

В настоящее время в разработке находится Phaser 4, анонсированный 19 августа 2019 года, который представляет собой попытку переписать Phaser 3 на TypeScript. Это не переписывание API, а вместо этого он будет сосредоточен на переносе скриптов, находящихся в настоящее время в Phaser 3, на TypeScript[8].

Архитектура и особенности[править | править код]

Phaser может работать в любом веб-браузере, поддерживающем элемент canvas . Игры, созданные с помощью Phaser, разрабатываются либо на JavaScript, либо на TypeScript. Веб-сервер необходим для загрузки таких ресурсов, как изображения, аудио и другие игровые файлы, поскольку браузеры требуют, чтобы веб-страницы имели доступ к файлам только из одного источника[9].

Рендеринг[править | править код]

Phaser может рендериться либо в WebGL, либо в элементе Canvas с возможностью использования WebGL, если браузер поддерживает его. Если устройство его не поддерживает, он вернется к использованию Canvas.

Физика[править | править код]

В Phaser доступны три физические системы: Arcade Physics, Ninja Physics и P2.JS.

Arcade Physics предназначена только для высокоскоростных столкновений AABB. Ninja Physics позволяет использовать сложные плитки и склоны, которые подходят для ландшафта уровня, и P2. JS — это система физики всего тела, которая среди прочего поддерживает препятствия, пружины и полигоны.

Начиная с Phaser версии 3.6, имеется 2 основных физических движка, а именно Arcade и Matter. Также имеется менее известных движок схожий с Arcade- Impact.

Arcade можно считать наиболее используемым, поскольку он самый простой и быстрый. Он использует выровненные по оси прямоугольники и круги для определения столкновений, помимо всех остальных функций движка, таких как гравитация, акселерация и сопротивление. Однако он также обладает ограничениями. Например будет затруднительно выполнить сложные хитбоксы, исходя из допустимых фигур. Также объекты находящиеся в непосредственной близости друг от друга могут вызвать проблемы со стабильностью.

В свою очередь Matter является наиболее продвинутым, что и делает его сложнее исходя из объема дополнительных функций. Он способен передавать полноценную и реалистичную физику тела. Он также поддерживает множество функций: твердые и составные тела, упругие столкновения, а также физические свойства, такие как масса и плотность.

Impact схож с Arcade однако имеет ряд преимуществ. Например он поддерживает наклоны на tilemaps, что невозможно в условиях прямоугольной физики Arcade. Однако для этого вам придется использовать редактор "Weltmeister" от создателя движка Impact.

Анимация и аудио[править | править код]

В Phaser анимацию можно создать, загрузив спрайт-лист, текстурный атлас и создав последовательность анимации.

Веб-аудио и аудио HTML5 можно использовать для воспроизведения звука в Phaser.

Смотрите также[править | править код]

Источники[править | править код]

  1. Phaser - JavaScripting. Дата обращения: 29 сентября 2022. Архивировано 29 сентября 2022 года.
  2. How to Learn the Phaser HTML5 Game Engine. Дата обращения: 29 сентября 2022. Архивировано 29 сентября 2022 года.
  3. Phaser - HTML5 Game Framework. GitHub (2 ноября 2021). Дата обращения: 29 сентября 2022. Архивировано 29 сентября 2022 года.
  4. Announcing Phaser (Flixel HTML5) and our Adobe Max session (12 апреля 2013). Дата обращения: 29 сентября 2022. Архивировано 29 сентября 2022 года.
  5. Phaser 1.0 and the journey we took to get there (16 сентября 2013). Дата обращения: 29 сентября 2022. Архивировано 29 сентября 2022 года.
  6. Phaser - Download - Phaser CE - Community Edition. Дата обращения: 29 сентября 2022. Архивировано 29 сентября 2022 года.
  7. Phaser - The fast, fun and free HTML5 Game Framework (англ.). phaser.io. Дата обращения: 15 мая 2018. Архивировано 15 мая 2018 года.
  8. Phaser 3 Dev Log #148: Phaser 4 Announcement and a catch-up on Phaser 3.18 and 3.19 releases. - Phaser3 - Phaser (англ.). phaser.io. Дата обращения: 26 апреля 2020. Архивировано 20 февраля 2020 года.
  9. Same-origin policy - Web security MDN (англ.). mozilla.org. Дата обращения: 30 сентября 2021. Архивировано 12 марта 2017 года.

Внешние ссылки[править | править код]