Skip to content

Extensions_ru

Gabriel Thullen edited this page Jul 29, 2026 · 1 revision

Расширения

Главная | 3D-вид | Полный справочник действий


Расширение — это самодостаточное дополнение, которое добавляет возможности в PyGameMaker, не изменяя основной движок. Расширение может предоставлять:

  • новые действия (они появляются в средстве выбора действий, как любое встроенное действие),
  • новый способ рисовать комнату (собственный движок рендеринга), и
  • соответствующий код экспорта, так что игры, использующие его, всё равно экспортируются в HTML5 и Kivy/Android.

Встроенное расширение 2.5D Raycast (функция 3D-вид) — это проработанный пример: оно добавляет четыре действия «3D-вид» и первополосный движок рендеринга и экспортируется во все три цели.


Включение и отключение

Расширения поставляются включёнными. Вы можете отключить одно (или включить то, что поставляется отключённым) без редактирования кода, с помощью ключа extensions в вашей конфигурации — карты имя папки → вкл./выкл.:

"extensions": { "raycast_2_5d": false }

Отсутствующая запись означает «использовать собственное значение расширения по умолчанию», так что ничто никогда не исчезает из-за отсутствующего ключа. Изменения вступают в силу при следующем запуске (действия регистрируются при запуске).

С отключённым расширением 2.5D Raycast комната, включающая первополосный вид, просто отображается сверху.


Когда проекту нужно расширение

Поскольку расширение можно отключить, PyGameMaker помогает избежать неожиданностей:

  • При загрузке, если проект использует действия из расширения, которое сейчас отключено, IDE показывает предупреждение с именем расширения и соответствующих функций (чтобы 3D-игра не отображалась молча сверху).
  • При сохранении проект записывает расширения, от которых зависят его действия, в project.json (список requires_extensions) — долговременная заметка, которую видит каждый, с кем вы делитесь проектом. Проект, не использующий действий расширений, просто опускает это поле.

Расширения и плагины

Оба добавляют действия; они отличаются только упаковкой:

Плагин Расширение
Форма единственный файл .py в plugins/ папка в extensions/ с манифестом
Лучше всего для небольшого набора действий функции, охватывающей несколько файлов и/или рисующей/экспортирующей
Пример действия Audio (plugins/audio_actions.py) 2.5D Raycast (extensions/raycast_2_5d/)

Как выглядит папка расширения

Для любопытных (и для тех, кто его пишет), расширение — это читаемая папка:

extensions/raycast_2_5d/
├── extension.json     # манифест: имя, версия, включено, provides_actions
├── actions.py         # схемы действий (показываются в средстве выбора)
├── handlers.py        # что делают действия во время выполнения
├── renderer.py        # собственный движок рендеринга комнаты (raycaster)
├── state.py           # состояние для каждой комнаты (в пространстве имён комнаты)
├── hud.py             # генераторы геометрии миникарты / полосы DOOM
├── export_html5.js    # порт HTML5, внедряемый в экспорт для веба
├── export_kivy.py     # порт Kivy, внедряемый в экспорт для мобильных/компьютера
└── README.md          # как всё сочетается

Список provides_actions в манифесте — это то, что позволяет IDE назвать точное расширение, когда проекту нужно отключённое.


См. также

Clone this wiki locally