Меню Рубрики

Установка плагинов construct 2

Установка плагинов construct 2

— Рабочий цикл
— Макет
— Слой
— Объект
— Экземпляр
— cr функции.

Обзор Construct 2 SDK.
Сторонние разработчики могут писать свои плагины и поведения для Construct 2 в javascript. Плагины имеют 2 части: сторона редактора — editor side (определяет настройки плагина, действия и условия, а также некоторые другие) и сторона, ответственная за рабочий цикл — runtime side. Сторона редактора интерпретируется при помощи движка Google’s V8 javascript встроенного в экспортер HTML5. Сторона рабочего чика запускается в браузере. Обратите внимание на следующие следствия: вы не можете использовать возможности, предоставляемые браузером, во время работы части кода редактора. Также вам не следует использовать специфичные для определенного вида браузера возможности на стороне кода рабочего процесса

Javascript — это не Java! Java — это язык для программирования приложений, разрабатываемый Sun (который правда может работать в браузере через плагин). Javascript — программный язык для веб страниц в браузере. Удостоверьтесь, что вы их теперь различаете.

Вам нет необходимости использовать какие-либо специальные средства для того, чтобы разработать плагины или поведения. Все, что вам нужно — это текстовой редактор и немного знания javascript. Любимой редактор кода разработчиков Scirra, подсвечивающий синтаксис javascript — это Notepad++.
http://notepad-plus-plus.org/

Этот гайд не научит вас javascript. Обычно, мы просим не задавать вопросы по языку javascript на форумах Scirra. Существует множество мест, где можно спросить о работе этого языка в интернете. Вопросы по работе SDK всегда приветствуются. Некоторые полезные ресурсы по javascript:

1. Mozilla’s Javascript Guide — полный гайд по javascript. Может быть хорошим стартом, если вы новичок в программировании. https://developer.mozilla.org/en-US/doc . ript/Guide
2. StackOverflow — отличный сат по вопросам и ответам. Также хорошее место для того, чтобы увидеть, был ли ваш вопрос уже задан, и получен ли на него ответ. http://stackoverflow.com/
3. Javascript Garden — гайд по необычным особенностям javascript. Очень полезен, если у вас есть опыт программирования языка, но вы новичок в javascript. http://bonsaiden.github.com/JavaScript-Garden/
4. Mozilla Developer Network (MDN) — прекрасное руководство по HTML, javascript и многому другому. Очень полезное место для того, чтобы посмотреть информацию о возможностях которые используются на стороне браузера в плагине. https://developer.mozilla.org/ru/

Общий обзор плагинов и поведений.
Перед разработкой плагина или поведения, вам следует хорошо ознакомиться с использованием Construct 2, в другом случае терминология и функциональность будет сложной для понимания.

Как вы возможно знаете, плагины определяют новые объекты в редакторе. Поведения добавляют функции поверх объектов. Плагины и поведения удивительным образом похожи. Раскрывая эту тему, поясним, что поведения — это плагины, но с целью влиять на другой объект.
SDKs для обоих очень похожи, поэтому этот гайд просто опишет, как можно сделать плагин и будет отмечать (где необходимо), в чем создание поведений будет отличаться.

Скрипты плагинов.
Скрипты плагинов и поведений расположены здесь:
\exporters\html5\plugins
\exporters\html5\behaviors
Каждый плагин имеют свою собственную папку.

Плагины состоят из 4 файлов:
common.js — присоединяется перед edittime.js и runtime.js в том случае, если вы имеете код, общий для 2 частей плагина.
edittime.js — определяет плагин для редактора, включает все действия, события и выражения.
runtime.js — определяет функциональность плагина в браузере.
PluginIcon.ico — редактор загружает иконку для предствления плагина.

Шаблон для плагина и поведения можно скачать здесь: https://www.scirra.com/downloads/javasc . mplate.zip Вы можете скопировать их к себе на компьютер для создания скелета для ваших будущих творений.

Плагины работают идентично и в 32 битной, и в 64-битной версиях Construct 2.

Все встроенные плагины и поведения также написаны данным способом. Будет полезным прочитать их код для того, чтобы посмотреть, как используются их возможности. Вы можете многому научиться из таких упражнений.

Все скрипты для рабочего цикла в javascript также расположены в \exporters\html5.
Они отлично читаемы и обильно прокомментированы). Прекрасное пособие для обучения, но может потребовать долгого чтения. Вы можете найти эти 3 скрипта особенно актуальными:

common_prelude.js — предваряет как скрипт редактора, так и скрипт рабочего процесса в браузере.
edittime_prelude.js — предваряет скрипты редактора.
preview_prelude.js — предваряет скрипты рабочего процесса в браузере.

Помните, что в javascript нет способа для ограничения доступа к объектам. Это означает, что вы можете изменить любую часть рабочего процесса в любое время. Вам следует знать, что это плохая идея, которая может привести к неожиданным последствиям, если только свойства объектов не тщательно задокументированы и имеют валидные пути для доступа к этим свойствам. Рабочий процесс сложен и любые незадокументированные изменения, которые вы сделаете, могут неожиданным образом нарушать работу проекта или приводить к незапланированным последствиям. Держите под рукой руководство.

Удачи!
Разработка вашего собственного плагина или поведения — это сравнительно просто и может быть очень веселым занятием. Следующие страницы гайда опишут процесс разработки плагина более детально. Если у вас есть вопросы по SDK не стесняйтесь спрашивать на официальном форуме Scirra (хороший английский приветствуется), но, пожалуйста, помните, что разработчики и сами являются пользователями других форумов по javascript.

Читайте также:  Установки женщин в семье

Сверху файла edittime.js располагается функция GetPluginSettings() которая сообщает Construct 2 некоторую важную информацию о плагине или поведении. Это установки для функции объекта Спрайт:

Код: Выделить всё 01function GetPluginSettings()
02<
03 return <
04 «name»: «Sprite»,
05 «id»: «Sprite»,
06 «version»: «1.0»,
07 «description»: «An animated object that is the building block of most projects.»,
08 «author»: «Scirra»,
09 «help url»: «http://www.scirra.com»,
10 «category»: «General»,
11 «type»: «world»,
12 «rotatable»: true,
13 «flags»: pf_animations | pf_position_aces | pf_size_aces | pf_angle_aces | pf_appearance_aces
14 >;
15>;

1. name — это имя вашего плагина, как он появляется в диалоговых окнах в Construct 2. Обратите внимание, что следует отличать это поле от id (идентификатора).
2. id — это строка, идентифицирующая ваш плагин. Все плагины должны иметь уникальный id. Именно идентификатор, а не имя сохраняется в проектном файле разметки XML для того, чтобы идентифицировать плагин. Это означает, что вы можете безопасно менять название плагина без того, чтобы сломать существующие проекты. Однако, если вы смените идентификатор, то Cjnstruct 2 будет рассматривать этот плагин как другой, и все проекты, которые использовали его ранее, запускаться не будут. Поэтому вы должны выбрать подходящий идентификатор при старте разработки и никогда не менять его.
3. version — это число с плавающей точкой в формате x.y, которое идентифицирует версию вашего плагина. Вам следует обновлять это значение каждый раз, когда вы вносите изменения в плагин. Construct 2 использует это поле для сверки совместимости проектов с текущей версией плагина. Например, Construct 2 покажет предупреждение, если проект был сохранен с помощью версии 2 плагина, но было открыт при помощи версии 1 инсталлированного плагина.
4. description — текст, описывающий назначение плагина. Показывается в диалоговом окне, когда выбирается плагин.
5. author — вы или ваша организация.
6. help url — когда пользователь нажимает на помощь в редакторе вашего плагина, он перенаправляется по этому адресу интернет.
7. category — в редакторе диалогов, все плагины и поведения сгруппированы в группы в категориях. Это определяет к какой категории относится ваш плагин. Рекомендуется использовать существующие категории там, где это возможно, но вы можете выставить любое значение, которое хотите для создания вашей категории. Категории чувствительны к регистру.
8. type (не используется для поведений). Может принимать одно из следующих значений:

1. «world» — плагин появляется в макете и после рисует что-то на экране (например, спрайт, тайловый фон, текст).
2. «object» — плагин не появляется на макете и ничего не рисует (например, массив). Метод отрисовки не будет вызван, пользователь не сможет расположить объект на макете. К нему можно будет получить доступ через панель объекта или панель проекта.

9. rotatable — поворачиваемый или нет; не используется для поведения, не используется, если выбранный тип «object». Если тип «world», то определяет, имеет ли объект угол. Пользователь может также поворачивать объект в редакторе макета. Например, спрайт поворачиваемый, а текст — нет.
10. flags. Флаги описывают дополнительные установки. Могут скомбинированы с побитовым оператором OR (или), например, pf_position_aces | pf_size_aces. Может быть выставлено в 0, если флаги не требуются. Следующие флаги доступны для плагинов:

1. pf_singleglobal — определяет глобальный тип плагина. Когда вставлен, становится доступным во всем проекте и возможен только один экземпляр объекта (дополнительные экземпляры не могут быть созданы). Это идеально для объектов ввода (клавиатура, мышь, джойстик). Подходит для аудио. Не может быть использован с плагинами типа «world»
2. pf_texture — плагин использует только одну текстуру. Тайловый фон использует этот флаг. При создании объекта Construct 2 будет открывать редактор изображений, если поднят этот флаг.
3. pf_animations — плагин использует систему анимации Construct 2’s. Спрайт использует этот флаг. При создании объекта Construct 2 будет открывать редактор анимаций, когда этот флаг установлен.
4. pf_tiling — валиден только если pf_texture или pf_animations также используется. Определяет, что плагин будет делить свою текстуру на тайлы. Изменяет функциональность редактора изображений для лучшего размещения тайловой текстуры. Тайловый фон использует этот плагин.
5. pf_position_aces — валидно только вместе с типом плагина «world». Автоматически наследует действия, условия и выражения объекта отнсоительно его позиции (например в Set X и Set Y).
6. pf_size_aces — то же, что и предыдущее, но для размера (например в Set Width и Set Height).
7. pf_appearance_aces — то же, что и предыдущее, но для прозрачности, внешнего вида объекта (например в Set Visible и Set Opacity).
8. pf_zorder_aces — то же, что и предыдущее, но для порядка по Z (например в Set Layer и Move To Front).
9. bf_onlyone (доступно только для поведений). Поведение может быть добавлено к объекту только один раз. По умолчанию разработчик игры может добавить столько поведений к объекту, сколько он хочет. Но этот флаг препятствует повторному использованию поведения. Например, поведение Solid (твердое тело) использует этот флаг, потому что для объекта нет смысла добавлять второй объект твердого тела.

Читайте также:  Установка распред шестерен камаз евро 2

11. dependency («пристройки») — не указано в листинге выше, но если вам необходимо добавить в узел к вашему плагину дополнительные файлы (например, библиотеку javascript), то вы можете это сделать следующим способом:

1 «dependency»: «file1.js;file2.js;file3.html»
Вы должны разместить эти файлы в папке с плагином. Construct 2 скопирует их при экспорте проекта и сделает доступными при просмоттре в браузере. Construct 2 также автоматически добавит скриптовый тег в HTML страницу перед запуском для любых файлов,заканчивающихся на .js, поэтому вам не нужно беспокоиться о загрузке из своими силами.

Изменения после публикации.
Вам не следует изменять устанвоки id, type, rotatable и flags после публикации вашего плагина или поведения. Из перечисленного как исключение можно лишь добавлять новые флаги ‘aces’. Остальные поля могут быть изменяемы от релиза к релизу.

Сокращенно «действия, условия и выражения» будут называться ACE ( ‘an action, condition or expression’.) или ACEs во множественном числе. В вашем edittime.js, вы можете задать ACE, которые будет использовать ваш плагин. Помните, что ACE для поведений смешана с ACE для плагинов в диалоговом окне редактора.

Если ваши ACE принимают параметры, то вы должны задать их, используя следующие функции. Параметры name (имя) и description (описание) запрашиваются у всех параметров. Имя появляется как надпись слева от параметра. Описание появляется наверху диалогового окна, когда параметр принимает фокус. Описание очень важно. Мы можете уберечь пользователя от увлекательного путешествия в мануал, разместив внутри описания важную информацию для использования. Попытайтесь включить в описание все, что пользователь хотел бы узнать о параметре. надеемся, что вы находите полезными те описания, которые разработчики включили в программу. Попытайтесь сделать что-то подобное в ваших плагинах.

Некоторые параметры также принимают initial_str. Это опциональная строка (всегда строка, даже для параметров-чисел), которая вставляется в параметр по умолчанию. Постарайтесь установить часто встречающееся или полезное значение, например, «100» для процентов. Это также может быть полезным для сохранения времени пользователя через указание, что следует ввести в поле. Никогда не позволяйте стандартному значению вызывать синтаксическую ошибку. Если вам не нужно устанавливать начальное значение, то поставьте 0 для числовых параметров или «» (пустая строка) для строк.

Все параметры также принимают опционально числовой параметр id. По умолчанию его можно не использовать, но он позволяет модифицировать ваши параметры после релиза вашего плагина. По умолчанию, все идентификаторы параметров являются их индексом. Вы можете обеспечить совместимость с существующими проектами путем явного присвоения идентификаторов для замены старых параметров на новые.

Все параметры передаются соответствующим функциям рабочего процесса как стандартные значения javascript. Они передается в том же порядке, в каком были добавлены этими функциями.

1. AddNumberParam(name, description, initial_str); типизированный числовой параметр, который принимает целые числа и числа с плавающей точкой.
2. AddStringParam(name, description, initial_str); типизированный строковой параметр.
3. AddAnyTypeParam(name, description, initial_str); типизированный параметр, который принимает целые числа, числа с плавающей точкой или строки. Там, где это возможно, старайтесь использовать числовой или строковый параметры (указаны выше), т.к. заставляют пользователя вводить данные в корректном формате, снижая шанс ошибки. Функция рабочего процесса должна проверить тип поступивших данных при помощи оператора javascript «typeof».
4. AddCmpParam(name, description); параметр комбобокса сравнения со следующими стандартными элементами списка: Equal, Not equal, Less, Less or equal, Greater, Greater or equal.
5. AddComboParamOption(text); AddComboParam(name, description, initial); параметр комбобокса с задаваемыми значениями. Вызовите AddComboParamOption один раз для каждого элемента списка для его установки. Обратите внимание, что initial определяет целочисленный индекс элемента по умолчанию, а не строку, как в других параметрах. Функция рабочего процесса получает числовой индекс выбранного элемента.
6. AddObjectParam(name, description); кнопка, которая позволяет пользователю выбрать в проекте определенный тип объекта. Функция рабочего процесса получает ссылку на на тип объекта в процессе работы приложения. Construct 2 также может передавать null-значение вместе с этим параметром, так что обычно требуется проверить, что параметр не равен null перед использованием.
7. AddLayerParam(name, description); типизированный параметр, куда пользователь может вписать имя слоя (строка) или номер слоя (индекс, нумерация с 0). Рабочий цикл получает ссылку на слой. Construct 2 также может передавать null значение для этого параметра, поэтому перед использованием, его надо проверить на валидность.
8. AddLayoutParam(name, description); комбобокс со всеми макетами в проекте. Рабочий цикл получает ссылку на макет. Construct 2 также может передавать null значение для этого параметра, поэтому перед использованием, его надо проверить на валидность.
9. AddKeybParam(name, description); кнопка, на которую пользователь может нажать. Рабочий цикл получает виртуальный код кнопки.
10. AddAnimationParam(name, description, initial_str); типизированный строковой параметр, где пользователь может ввести имя одной из анимаций объекта. Валидно, только если у плагина установлен флаг pf_animations. Construct 2 также может передавать null значение для этого параметра, поэтому перед использованием, его надо проверить на валидность.
11. AddAudioFileParam(name, description); комбобокс со всеми аудиофайлами проекта. Рабочий цикл получает строку с названием файла без расширения. например, если выбран MyFile.ogg, передается «MyFile». Если браузер поддерживает Vorbis, вам следует прибавить .ogg; если нет, то добавить .m4a. Разработчики не гарантируют существование .m4a файла: Construct 2 принимает .ogg файлы в аудиофайлы проекта и использует .m4a только в качестве сохраненной копии .ogg файлов, если браузер не поддерживает Vorbis. Однако пользователь может не сделать бэкап в .m4a.

Читайте также:  Установка битрикс установить в кодировке

По соглашению, условия плагина перечисляются первыми. Как только параметры были добавлены, следующая функция добавляет условие:

AddCondition(id, flags, list_name, category, display_string, description, script_name);

1. id — идентификатор, число, однозначно идентифицирующее это условие. Сохраняется в проектном файле разметки XML, поэтому вы можете изменить любой из оставшихся параметров, но только не его.
2. flags — флаги, могут принимать значения либо 0 (при отсутствии флагов), либо следующее значения скомбинированные при помощи побитового ИЛИ |

* cf_trigger — условие-триггер. События с триггерами не вычисляются каждый тик. Вместо этого они запускаются при помощи функции runtime.trigger(). Имеется ряд ограничения на триггеры: событие может иметь только один триггер; триггер может быть только первым событием.
* cf_fake_trigger — появляется и работает в точности как триггер в редакторе, но в пассивном режиме вычисляется каждый тик в ходе рабочего цикла как обычное условие. Ложные триггеры полезны для событий наподобие «Every X milliseconds», где условие должно работать как триггер в редакторе, но в рабочем цикле наиболее удобно его представить как обычное событие. Ложные триггеры не могут быть запущены при помощи runtime.trigger(): они идентичны обычным событиям в рабочем цикле. Этот флаг оказывает влияние только на стороне редактора.
* cf_static — обычно функция условия вызывается в ходе рабочего цикла один раз для каждого экземпляра, чтобы осуществить выбор среди всех экземпляров. Статичные условия (определяемые этим флагом) имеют только функцию, вызванную один раз, вне зависимости от того, сколько экземпляров есть. Например, ‘Pick random instance’ (выбрать случайный объект) будет наиболее удобно применить как статичное условие.
* cf_not_invertible — предотвращает инвертирование условий. Это имеет значение, когда инвертированные значения не имею смысла, например в том же ‘Pick random instance’.
* cf_deprecated — скрывает условия из диалога. Если вы желаете заменить условие в вашем плагине на другие, вы можете полностью его не удалять (если вы удалите его, то все текущие проекты, которые его используют, окажутся неработоспособными). Вместо этого пометьте его этим флагом, что помешает использовать его в новых проектах, но позволит загружать старые проекты и продолжать использовать их.
* cf_incompatible_with_triggers — запрещает добавлять условие к событию, где есть триггер. Для плагинов это обычно не очень полезно. В рабочем цикле флаг используется для особых событий наподобие ‘trigger once’.
* cf_looping — показывает иконку цикла после события. Не оказывает на функциональность события, добавляется из косметических соображений. Construct 2 будет подразумевать, что ваша функция условия реализована как условие цикла.

3. list_name — имя условия в диалоге Add condition, например, «Compare X».
4. category — имя категории в диалоге выбора условия. Может быть пустым для условий поведения, где категория будет именем поведения. Не должно быть пустым для условий плагина.
5. display_string — строка, показываемая на экране списка событий. <0>, <1>, <2>замещаются соответствующими параметрами. Можно использовать теги для полужирного и наклонного шрифта HTML(но никакой другой HTML использовать не позволено).
6. description — строка, появляющаяся сверху диалога Add condition, когда пользователь выбирает условие. Как и с параметром описания объекта старайтесь сделать это поле настолько полезным, насколько это возможно.
7. script_name — имя функции условия в скрипте рабочего цикла. Например, если это «MyCondition», то функция рабочего цикла дожна выглядеть как cnds.MyCondition. Т.к. для свойств должен быть использован dot синтаксис (для максимальной совместимости), удостоверьтесь, что названии нет пробелов.

По соглашению, действия плагинов перечисляются во вторую очередь. Как только параметры были добавлены, следующая функция добавляет действие:

AddAction(id, flags, list_name, category, display_string, description, script_name);

1. id — число уникально идентифицирующее действие. Сохраняется в проектном файле разметки XML, поэтому вы можете изменить любой из оставшихся параметров, но только не его.
2. flags — флаги, могут принимать значения либо 0 (при отсутствии флагов), либо следующее значение:

* af_deprecated — скрывает действие из диалога. Если вы желаете заменить действие в вашем плагине на другие, вы можете полностью его не удалять (если вы удалите его, то все текущие проекты, которые его используют, окажутся неработоспособными). Вместо этого пометьте его этим флагом, что помешает использовать его в новых проектах, но позволит загружать старые проекты и продолжать использовать их.

источник