Skip to content

Extensions_uk

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