-
Notifications
You must be signed in to change notification settings - Fork 0
Extensions_ru
Главная | 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 назвать точное
расширение, когда проекту нужно отключённое.
- 3D-вид — функция, которую предоставляет встроенное расширение
- Полный справочник действий — действия расширений также появляются здесь
- Экспорт игр — функции расширений переносятся в экспорты