Расширение цикла игры ct.js с инъекциями
Расширение цикла игры ct.js с инъекциями
Автоматически переведённая страница
К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).
Инъекции являются мощным инструментом для расширения функциональности фреймворка ct.js за счет добавления методов или свойств. Это позволяет добавлять логику в игровой цикл, загружать ресурсы, создавать пакеты шаблонов и т.д.
В папке "injections" внутри каталога вашего модуля хранятся файлы с кодом, который будет внедрен при экспорте игры. Все они являются необязательными, и здесь представлен список всех возможных инъекций:
Общие события:
load.js— вызывается один раз при загрузке кода игры, но еще ничего не произошло, например, ресурсы не были загружены;start.js— вызывается один раз при загрузке всех ресурсов игры. Логика игры еще не выполнялась.switch.js— вызывается каждый раз при переключении комнаты, но до выполнения любого другого кода. Здесь переменная "room" — это название новой комнаты.
События, специфичные для комнаты:
beforeroomoncreate.js— вызывается перед созданием комнаты, но после установки камеры и рендера.roomoncreate.js— вызывается после входа в новую комнату. Этот код выполняется после пользовательского события OnCreate, когда были созданы все копии. Здесь "this" равно новой комнате.roomonleave.js— вызывается перед выходом из комнаты, но до выполнения любого пользовательского скрипта. Копии все еще существуют здесь.beforeroomdraw.jsafterroomdraw.jsbeforeroomstep.jsafterroomstep.js
События, специфичные для копии:
onbeforecreate.js— применяется к только что созданной Копии перед ее событием OnCreate, но после применения типа информации. Работает с чистыми Копиями (копиями без шаблона) также.oncreate.js— применяется к только что созданной Копии сразу после своего собственного события OnCreate.ondestroy.js— применяется к Копии перед ее удалением. Этот код выполняется до события OnDestroy копии.beforedraw.jsbeforestep.jsafterdraw.jsafterstep.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.
