Создание плагинов

уроки, мануалы, советы по Construct 2

Сообщение Создание плагинов
» 14 фев 2014, 15:42

Документация:

- Общий обзор Construct 2 SDK
- Базовые настройки плагина
- Действия, Условия и Выражения (ACE). Часть 1: передаваемые параметры. Часть 2: добавление условий и действий. Часть 3: добавление выражений.
- Добавление свойств.
- Обзор Edit-time
- Обзор Runtime
- Функции Runtime
- Реализация ACE
- Создание пакетов .c2addon

Руководство:

- Рабочий цикл
- Макет
- Слой
- Объект
- Экземпляр
- cr функции.
Последний раз редактировалось equinox 14 фев 2014, 22:53, всего редактировалось 10 раз(а).
Аватара пользователя

Игродел
Сообщений: 49
Я тут с 07 фев 2014
Откуда: Санкт-Петербург, Москва
Репутация 61 [ ? ]

Сообщение Обзор Construct 2 SDK
» 14 фев 2014, 15:43

Обзор 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 для обоих очень похожи, поэтому этот гайд просто опишет, как можно сделать плагин и будет отмечать (где необходимо), в чем создание поведений будет отличаться.

Скрипты плагинов.
Скрипты плагинов и поведений расположены здесь:
<install path>\exporters\html5\plugins
<install path>\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 также расположены в <install path>\exporters\html5.
Они отлично читаемы и обильно прокомментированы). Прекрасное пособие для обучения, но может потребовать долгого чтения. Вы можете найти эти 3 скрипта особенно актуальными:

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

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

Удачи!
Разработка вашего собственного плагина или поведения - это сравнительно просто и может быть очень веселым занятием. Следующие страницы гайда опишут процесс разработки плагина более детально. Если у вас есть вопросы по SDK не стесняйтесь спрашивать на официальном форуме Scirra (хороший английский приветствуется), но, пожалуйста, помните, что разработчики и сами являются пользователями других форумов по javascript.
Последний раз редактировалось equinox 14 фев 2014, 19:58, всего редактировалось 1 раз.
Аватара пользователя

Игродел
Сообщений: 49
Я тут с 07 фев 2014
Откуда: Санкт-Петербург, Москва
Репутация 61 [ ? ]

Сообщение Базовые настройки плагина
» 14 фев 2014, 17:00

Базовые настройки плагина
Оригинал: https://www.scirra.com/manual/18/plugin-settings

Сверху файла 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 (твердое тело) использует этот флаг, потому что для объекта нет смысла добавлять второй объект твердого тела.

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

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

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

Игродел
Сообщений: 49
Я тут с 07 фев 2014
Откуда: Санкт-Петербург, Москва
Репутация 61 [ ? ]

Сообщение Передаваемые параметры
» 14 фев 2014, 19:55

Передаваемые параметры
Оригинал (часть 1): https://www.scirra.com/manual/19/action ... xpressions

Сокращенно "действия, условия и выражения" будут называться 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.
Аватара пользователя

Игродел
Сообщений: 49
Я тут с 07 фев 2014
Откуда: Санкт-Петербург, Москва
Репутация 61 [ ? ]

Сообщение Добавление условий и действий в плагин
» 14 фев 2014, 21:11

Оригинал (часть 2): https://www.scirra.com/manual/19/action ... xpressions

Добавление условий в плагин

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

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 - скрывает действие из диалога. Если вы желаете заменить действие в вашем плагине на другие, вы можете полностью его не удалять (если вы удалите его, то все текущие проекты, которые его используют, окажутся неработоспособными). Вместо этого пометьте его этим флагом, что помешает использовать его в новых проектах, но позволит загружать старые проекты и продолжать использовать их.

3. list_name - имя действия в диалоге Add action, например, "Set X".
4. category - имя категории в диалоге выбора действия. Может быть пустым для действий поведения, где категория будет именем поведения. Не должно быть пустым для действий плагина.
5. display_string - строка, показываемая на экране списка событий. {0}, {1}, {2} замещаются соответствующими параметрами. Можно использовать теги для полужирного и наклонного шрифта HTML(но никакой другой HTML использовать не позволено).
6. description - строка, появляющаяся сверху диалога Add action, когда пользователь выбирает действие. Как и с параметром описания объекта старайтесь сделать это поле настолько полезным, насколько это возможно.
7. script_name - имя функции действия в скрипте рабочего цикла. Например, если это "MyAction", то функция рабочего цикла дожна выглядеть как acts.MyCondition. Т.к. для свойств должен быть использован dot синтаксис (для максимальной совместимости), удостоверьтесь, что названии нет пробелов.
Аватара пользователя

Игродел
Сообщений: 49
Я тут с 07 фев 2014
Откуда: Санкт-Петербург, Москва
Репутация 61 [ ? ]

Сообщение Добавление выражений
» 14 фев 2014, 22:01

Добавление выражений


Оригинал (часть 3): https://www.scirra.com/manual/19/action ... xpressions

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

AddExpression(id, flags, list_name, category, expression_name, description);

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

* ef_return_number - выражение возвращает либо целое число, либо число с плавающей точкой, используя функции рабочего цикла ret.set_int() или ret.set_float() соответственно.
* ef_return_string - выражение возвращает строку, используя функцию рабочего цикла ret.set_string().
* ef_return_any - выражение может возвращать или целое число, или число с плавающей точкой или строку. 2 предыдущих флага предпочтительнее, т.к. парсер выражений Construct 2 не может верифицировать корректность данных при использовании выражений с этим флагом.
* ef_deprecated - скрывает выражение из диалога. Если вы желаете заменить выражение в вашем плагине на другие, вы можете полностью его не удалять (если вы удалите его, то все текущие проекты, которые его используют, окажутся неработоспособными). Вместо этого пометьте его этим флагом, что помешает использовать его в новых проектах, но позволит загружать старые проекты и продолжать использовать их.

3. list_name - аналогично с теми же параметрами для условий и действий. Однако в текущей версии не используется.
4. category - категория выражения в диалоговом окне. Аналогично такому же параметру для условий и действий.
5. expression_name - имя выражения. dot синтаксис. Для плагинов выражение используется как MyObject.expression_name. Для поведений выражение используется как MyObject.MyBehavior.expression_name. В функции рабочего цикла будет выглядеть как exps.MyExpression.
6. description - описание появляется рядом с выражением в панели выражений. Должно максимально полезно описывать функцию выражения.

Завершение.
Как только вы добавили все ACEs, вызовите следующую функцию:
ACESDone();
После этой линии никакие условия, действия или выражения не могут быть добавлены.

Реализация функций рабочего цикла.
Каждое ACE должно иметь соответствующую функцию в runtime.js. Эти функции должны быть добавлены к прототипам объектов Cnds, Acts и Exps.
Условия объявляются так:

Cnds.prototype.ScriptName = function (params)
{
return true;
};

где params - это список параметров функции, соответствующих параметрам, которые были добавлены к условию. Может быть пустым = function (), если никаких параметров не было добавлено. Функция должна вернуть истину, если условие было истинным для этого экземпляра или ложь, если нет.

Действия объявляются следующим образом:

Acts.prototype.ScriptName = function (params)
{
// do something
};

Функции действий не возвращают значений.

Выражения объявляются так:

Exps.prototype.ExpressionName = function(ret[, params])
{
ret.set_int(0);
// or:
// ret.set_float
// ret.set_string
// ret.set_any
};

Обратите внимание, что имя выражения используется здесь вместо имени скрипта. ret должен быть всегда первым параметром и требуется даже тогда, когда выражение не имеет параметров. Любой параметр выражения должен следовать только после ret.
Аватара пользователя

Игродел
Сообщений: 49
Я тут с 07 фев 2014
Откуда: Санкт-Петербург, Москва
Репутация 61 [ ? ]

Сообщение Добавление свойств в плагин
» 14 фев 2014, 22:52

Добавление свойств


Оригинал = https://www.scirra.com/manual/20/properties

Определяет, что появляется на панели свойств создаваемого плагина. Construct 2 добавляет свои собственные свойства к большинству плагинов. Однако вы можете определить собственные свойства, которые будут показаны внизу панели свойств. Для поведений свойства появляются в подкатегории категории поведений.

Свойства определяются в edittime.js. По соглашению они следует за определением условий, действий и выражений.

var property_list = [
// лист свойств объекта
];

Каждое свойство должно быть новым объектом cr.Property:
new cr.Property(type, name, initial_value, description[, param, readonly])

1. type - тип значения, может быть:

* ept_integer - целое число. Числа с плавающей точкой не могут быть введены в такое поле.
* ept_float - число с плавающей точкой.
* ept_text - текст (строка).
* ept_color - селектор цвета. Рабочий цикл получает rgb строку, например, "rgb(255,255,255)".
* ept_font - селектор шрифта. Рабочий цикл получает строку в формате "имя,размер,вес(полужирность),курсив"
* ept_combo - свойство комбобокса. Элементы определены в параметрах "param", например, "One|Two|Three".
* ept_link - ссылка. Ссылки не имеют ассоциированных значений, не могут быть переданы в рабочий цикл. Они позволяют что-либо сделать в OnPropertyChanged().

2. name - имя свойства.
3. initial_value - стартовое значение свойства. Это должно быть javascript число для свойств в виде целого числа или числа с плавающей точкой и javascript строкой для текстового свойства. RGB значение для свойства выбора цвета (например, cr.RGB(255, 255, 255)); строка в формате "имяШрифта,размер" для свойств шрифта; строку с элементом по умолчанию для комбобокса и текст ссылки для свойства-ссылки.
4. description - текст, который появляется как подсказка внизу панели свойств. Старайтесь оставлять его коротким, но максимально полезным.
5. param (опционально) - для комбо свойств, разделенны1 через поразрадное или "|" список элементов выпадающего списка, например, "One|Two|Three". Для параметра ссылки, здесь могут быть следующие значения:

* "firstonly" - по умолчанию, при нажатии на ссылку вызывает OnPropertyChanged() один раз для каждого выбранного экземпляра. Если вы применяете действие к объекту в целом, например, вызывая редактор изображений, "firstonly" вызывает OnPropertyChanged() один раз и только для первого выбранного экземпляра.
* "worldundo" - создает объект типа 'world' (неотрисованный), куда записывает ряд информации, перед тем как вызвать OnPropertyChanged(). Это позволяет отменить люое изменение в позиции, размере или угле.
* readonly (опционально) - установить в истинное положение для того, чтобы сделать свойство доступным только для чтения.

Получение значений свойств во время рабочего цикла.
В функции onCreate() вашего экземпляра в runtime.js, свойства доступны через массив this.properties[]. Это массив, содержащий значения свойств. Значения находятся в том же порядке, в каком они были добавлены, за исключением свойств-ссылок. Свойств ссылок в этом массиве нет, они не передаются в рабочий цикл.
Аватара пользователя

Игродел
Сообщений: 49
Я тут с 07 фев 2014
Откуда: Санкт-Петербург, Москва
Репутация 61 [ ? ]

Сообщение Создание плагинов
» 06 июн 2014, 08:55

спасибо за урок
Аватара пользователя

Участник
Сообщений: 34
Я тут с 04 май 2014
Репутация 16 [ ? ]

Сообщение Создание плагинов
» 08 фев 2016, 11:56

спасибо :good2:
Аватара пользователя

Участник
Сообщений: 59
Я тут с 20 дек 2014
Откуда: Беларусь
Двиг: Construct 2
VK: europlaystudio
Репутация 15 [ ? ]



Вернуться в Уроки по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх