Перейти к основному содержанию

Расширение цикла игры ct.js с инъекциями


Расширение цикла игры ct.js с инъекциями

Автоматически переведённая страница

К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).

Инъекции являются мощным инструментом для расширения функциональности фреймворка ct.js за счет добавления методов или свойств. Это позволяет добавлять логику в игровой цикл, загружать ресурсы, создавать пакеты шаблонов и т.д.

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

Общие события:

  • load.js — вызывается один раз при загрузке кода игры, но еще ничего не произошло, например, ресурсы не были загружены;
  • start.js — вызывается один раз при загрузке всех ресурсов игры. Логика игры еще не выполнялась.
  • switch.js — вызывается каждый раз при переключении комнаты, но до выполнения любого другого кода. Здесь переменная "room" — это название новой комнаты.

События, специфичные для комнаты:

  • beforeroomoncreate.js — вызывается перед созданием комнаты, но после установки камеры и рендера.
  • roomoncreate.js — вызывается после входа в новую комнату. Этот код выполняется после пользовательского события OnCreate, когда были созданы все копии. Здесь "this" равно новой комнате.
  • roomonleave.js — вызывается перед выходом из комнаты, но до выполнения любого пользовательского скрипта. Копии все еще существуют здесь.
  • beforeroomdraw.js
  • afterroomdraw.js
  • beforeroomstep.js
  • afterroomstep.js

События, специфичные для копии:

  • onbeforecreate.js — применяется к только что созданной Копии перед ее событием OnCreate, но после применения типа информации. Работает с чистыми Копиями (копиями без шаблона) также.
  • oncreate.js — применяется к только что созданной Копии сразу после своего собственного события OnCreate.
  • ondestroy.js — применяется к Копии перед ее удалением. Этот код выполняется до события OnDestroy копии.
  • beforedraw.js
  • beforestep.js
  • afterdraw.js
  • afterstep.js

Шаблоны и утилиты:

  • css.css — внедряет CSS в экспортируемую игру.
  • res.js — вызывается один раз при парсинге загруженных изображений.
  • resload.js — вызывается один раз после загрузки всех ресурсов.
  • templates.js — здесь можно разместить свои собственные шаблоны.
  • styles.js — здесь можно разместить свои собственные стили рисования.
  • htmltop.html — этот код размещается прямо перед канвой рисования.
  • htmlbottom.html — этот код размещается прямо после канвы рисования.

Также см. [Порядок вызовов с инъекциями модуля](event-order.html# порядок-вызовов-с-инъекциями-модуля) для более полной картины порядка вызовов.

Шаблонирование

Каждая инъекция может подменить специальную метку значением из ваших настроек. Если вы определили поле настройки с ключом enableSockets, то все совпадения с /*%enableSockets%*/ в файлах js, css и html будут заменены выбранным пользователем значением.

Будьте осторожны, так как поле может вернуть пустое значение. В JavaScript вы можете использовать этот обрамляющий символ, чтобы безопасно прочитать переменную без нарушения синтаксиса: [/*%enableSockets%*/][0]. Это вернет либо определенное значение, либо undefined.

Совет

Шаблонирование также поддерживается в вашем файле index.js.