Расширение цикла игры 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
.