Каталог плагинов

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

Сообщение Каталог плагинов
» 07 фев 2014, 17:53

Здесь будут добавляться описания плагинов на русском.

Лист плагинов

Последний раз редактировалось equinox 13 фев 2014, 21:24, всего редактировалось 25 раз(а).
Аватара пользователя

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

Сообщение Function
» 07 фев 2014, 19:50

Function


Объект функции может запускать различные события (On function) в действии (Call function). Это аналог функций в традиционном программировании. Использование функций может помочь организовать ваши события и избежать повторения групп действий или событий, экономя место и ваше время.

О функциях
Основная задача объекта функция - это использовать действие call function (вызвать функцию). Это действие включает в себя имя функции (например, call function "CreateEnemy"). Действие запускает соответствующее имени событие "on function" (в данном случае on function "CreateEnemy"), которое запускает действия события и подсобытия, перед тем как вернуться к действию call function, которое запустило эту функцию, и продолжиться с того момента, с которого оно остановилось.
Как другой пример, предположим вы создаете бота со случайными параметрами каждые пять секунд, настраивая его размер, здоровье, цвет, номер анимационного фрейма и еще много параметров.

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

Отметьте, что это становится неудобным. В некоторых случаях, вам, возможно, придется повторить эту процедуру даже большее число раз. Если вам нужно будет что-то изменить, то вам необходимо будет произвести изменения в каждом событии. Мы можем избежать повторений, используя функции. Создавая функцию CreateEnemy, которая содержит повторяющиеся действия, мы можем заменить повторяющиеся действия с помощью Call function.

Это работает точно так же, как и предыдущие события, но намного короче и более удобно. Мы можем использовать действие call "CreateEnemy" каждый раз, когда мы хотим создать бота, и это будет использовать такой же набор действий как и в on "CreateEnemy" действии.

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

Параметры
Когда мы вызываем функцию, мы также можем задать параметры. Это числа или строки, которые изменяют работу функции. Например, функция CreateEnemy из предыдущего примера может быть модифицирована так, чтобы принимать 2 параметра: координаты X и Y, в которых нужно создавать бота. В этом случае первый параметр будет числом-координатой икс, а второй параметр - число-координата игрек. В on function в координатах создания объекта прописываем Function.param(0) для X и Function.param(1) для Y. Это помогает функциям выполнять более общие задачи, используя дополнительную информацию из действий, которые вызывают функцию.

Для того чтобы добавить параметр, кликните на ссылку add parameter, которая появляется в диалоге параметров, когда мы настраиваем действие call function.

Дополнительные особенности функций
Как и в языках программирования, объект функции поддерживает следующее:

  • Функции, которые вызывают другие функции.
  • Функции, которые вызывают сами себя (рекурсия).
  • Возвращаемые значения из функций.
  • Вызывание функций из выражений (которые также возвращают значение).

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

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

Возвращаемые значения из функций
Функции также могут возвращать результат. Например, функция факториала может сосчитать математический результат и возвратить его. В событии On function возвращаемое значение может быть настроено, используя действие Set return value.

Если событие было вызвано действием Call function, возвращаемое значение после доступно, используя ReturnValue выражение. Функции также могут быть вызваны прямо из выражения, используя выражение Call. В этом случае возвращаемое значение автоматически возвращается как результат выражения Call.

Условия функций

  • Compare parameter - сравнить параметр, сравнивает значение одного из параметром с вызванным в функции. Это условие следует использовать только в событии On function, так как вне вызова функции нет настроенных параметров.
  • On function. Триггер, запускается, когда соответствующее действие Call function использовано.

Действия функций

  • Call function - запускает соответствующие события On function. Дополнительные параметры могут быть заданы для доступа к выражению Param.
  • Set return value - в событии функции устанавливает значение, которое возвращается в место, откуда функция была вызвана. Это может быть возвращено как при помощи выражения Call, так и получено позже, используя выражение ReturnValue.

Выражения функций

  • Call - вызывает функцию прямо из выражения. Выражение возвращает возвращаемое значение, которое было установлено внутри функции или 0, если нет установленного возвращаемого значения. Дополнительные параметры могут быть факультативно добавлены после имени функции, например, function.Call("CreateEnemy",123,456).
  • Param - возвращает параметр, переданный функции из вызова через индекс, начинающийся с 0. Например, function.Param(0) возвращает значение первого параметра.
  • ParamCount - возвращает число параметров, переданных функции из вызова.
  • ReturnValue - возвращает значение, установлено через действие Set return value из последнего вызова функции. Если Set return value не используется в функции, возвращает 0.
Источник
Последний раз редактировалось equinox 11 фев 2014, 16:50, всего редактировалось 2 раз(а).
Аватара пользователя

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

Сообщение AJAX
» 07 фев 2014, 21:45

AJAX


AJAX плагин позволяет получать веб-страницы в то время, как игра запущена. Название происходит от "асинхронный JavaScript и XML", технологии, знакомой большинству веб разработчиков. Объект AJAX спроектирован для использования веб разработчиками уже знакомыми с этой техникой, это руководство не описывает принципы работы AJAX самого по себе, но рассказывает как он может быть использован в Construct 2. Обычно использование этого объекта также требует наличия серверной стороны, описание работы и создания которой вне задач данного мануала.

Как сделать запрос
Основное использование объекта AJAX:

  • Используйте действие Request для того, чтобы загрузить URL.
  • Моментом позже успешного выполнения запроса, запускается триггер On complete.
  • Выражение LastData может быть использовано для доступа к содержимому запроса.

Системное выражение tokenat может быть использовано для разделения простых запросов. Также вы можете загрузить LastData в XML плагин для того, чтобы читать его как документ файла разметки.

Теги
Для каждого запроса могут быть заданы свои уникальные теги. Это простая строка, которая необходима, чтобы отличать разные запросы. Например, на старте вы можете запросить 2 файла: foo.php с тегом "foo" и bar.php с тегом "bar". Когда первый запрос выполнен, запускается триггер On "foo" completed. Когда второй запрос выполнен, запускается триггер On "bar" completed. Запросы могут быть завершены в ином порядке, чем были запущены, таким образом, без тегов, было бы невозможным сказать, какой запрос выполнен.

Кросс-доменные запросы и превью
По умолчанию браузеры блокируют запросы AJAX между разными доменами. Это означает, например, что игра на scirra.com может запросить другие страницы на scirra.com, но не может запросить страницы на facebook.com. Это важное свойство безопасности веб браузеров (это не специфично для объекта AJAX или всего Construct 2).
Также, когда мы выполняем превью в Construct 2, мы запускаем игру на локальном хосте. Это считается как другой домен по отношению ко всему остальному интернету, поэтому обычно AJAX запросы к любой веб странице в течение превью не будут выполнены, если только сервер ЯСНО не позволяет кросс-доменные запросы.

Запросы через Node-WebKit
Когда вы экспортируете ваше десктопное приложение через node-webkit, объект AJAX также может загружать файлы из папки приложения. Просто используйте действие Request URL и введите название файла в той же самой директории, где находится ваше приложение, например, "example.txt". Обратите внимание, что если в папке находится файл проекта с таким же именем, то будет загружен именно он, а не запрашиваемый файл.

Условия AJAX

  • On completed. Запускается, когда запрос с таким же тегом полностью и успешно получен. Полученные данные могут быть выведены при помощи выражения LastData.
  • On error. Запускается, когда запрос с таким же тегом по какой-то причине был не получен. Это может быть по множеству причин, таких как падение сервера, или окончание времени, отведенного на обработку запроса.
  • On progress. Для запросов, которые долго выполняются (например, скачивание большого файла), триггеры On progress периодически выполняются и обновляют содержимое выражения Progress в соответствии с состоянием запроса. Это полезно для создания ползунков прогресса выполнения операции для аякс запроса.

AJAX действия

  • Post to URL. Посылает POST запрос на адрес URL и получает ответ. Тег необходим для совмещения с триггерами On completed/On progress/On error. Construct 2 автоматически не шифрует посылаемые данные, используйте системное выражение URLEncode для того, чтобы быть уверенным в корректности посылаемых данных. Обратите внимание, что посылать данные надо в формате query строки, например, "foo=1&bar=2"
  • Request URL. Посылает GET запрос для того, чтобы получить контент от URL. Тег необходим для совмещения с триггерами On completed/On progress/On error.
  • Request project file - запрашивает содержимое проектного файла. Тег необходим для совмещения с триггерами On completed/On progress/On error.

AJAX выражения

  • LastData. Содержит последний запрос. Устанавливается в триггере On completed. Системное выражение tokenat может быть использовано для разделения простых запросов.
  • Progress. Возвращает прогресс запроса AJAX в событии On progress. Этот прогресс представлен как число от 0 до 1, например 0.5 - это запрос, выполненный наполовину.
Источник
Последний раз редактировалось equinox 11 фев 2014, 16:50, всего редактировалось 1 раз.
Аватара пользователя

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

Сообщение Audio
» 08 фев 2014, 00:56

Audio


Аудио объект воспроизводит аудиофайлы, которые были импортированы в проект. Этот объект должен быть добавлен в каждый проект, для которого необходимо проигрывание аудиофайлов. Аудиофайлы могут быть импортированы в проект путем щелчка правой кнопкой мыши на Sounds (Звуки) или Music папках на проектной панели (Project Bar) и выбора Import.., который перенесет вас в Import Audio Dialog. Смотрите соответствующие секции для более детальной информации по шагам, вовлеченным в импортирование файлов.

Совет. Распределяйте файлы по категориям корректно
Важно организовать аудио файлы соответственно выполняемым функциям, потому что аудиофайлы в папке Sounds загружаются полностью до проигрывания, а файлы в папке Music воспроизводятся в потоке. Это означает, что если музыкальный трек случайно попадет в папку со звуками, то он будет загружен полностью до старта проигрывания, что может занять пару минут. Однако, аудио в папке музыки может начинать играть сразу же как оно начало свой стрим с сервера.


Аудио загружается по запросу
Для того, чтобы ускорить загрузочное время и начать игру раньше, аудио загружается или ставится в стрим по запросу в течение игры. Другими словами, ничего не загружается до тех пор как действие Play начинает играть аудио файл. Потом, если аудиофайл находится в папке с музыкой, он начинает стрим с сервера, если он в папке со звуками, то он начинает свою загрузку и будет проигран как только полностью загрузится. Это также позволяет снизить требования к пропускной способности сервера в том смысле, что если аудио не используется, то оно никогда не загружается. Однако это может вызвать задержку перед проигрыванием аудио в первый раз. Задержки перед последующими запусками не происходит, потому что после первого проигрывания аудиофайла, звук уже загружен и может быть проигран немедленно, если играется во второй раз.

Вы также можете использовать действие Preload (предзагрузка) для того, чтобы начать загрузку аудио без триггера в виде проигрывания. Это может быть сделано в On start of layout (при запуске уровня) для начала загрузки некоторых важных звуковых эффектов, так чтобы не было задержки перед тем, как они сыграны в первый раз. Однако это полностью факультативно (все игры будут работать вообще без предзагрузки) и не должно быть использовано чрезмерно часто во избежании замедления работы браузера слишком большим количеством загрузок и как результат отсутствием всех звуковых эффектов в течение некоторого времени.

Аудиотеги
Некоторые действия могут влиять на параметры аудио, такие как громкость воспроизведения для звуков, которые уже проигрываются. Однако может быть множество звуков, которые проигрываются один раз за всю игру. Для того, чтобы определить, на какие из звуков вы хотите влиять, звуки проигрываются со связанным с ними тегом. Это любая строка, которая однозначно идентифицирует звук. Например, звуковой эффект оружия игрока может быть проигран с тегом "PlayerWeapon", а оружие бота может быть проиграно с тегом "EnemyWeapon". Далее, тег может быть использован в действии Set Volume для того чтобы, для какого именно звука нужно установить новый уровень громкости. Теги нечувствительны к регистру.

Множество звуков может проигрываться вместе под одним тегом. В этом случае такие действия как Set Volume оказывают эффект на все звуки, которые проигрываются под этим тегом. Тег, который представляет собой пустую строку ("") имеет особое значение: он ссылается только на последний звук который был сыгран при помощи действия Play. Это удобно для проигрывания звука и немедленной настройки его уровня громкости и других параметров.

Ограничения мобильных платформ
Safari (iOS) и Chrome (Android) накладывают ограничения на проигрывание музыки. В них звуки могут быть проиграны в любое время, а музыка может быть проиграна только с того момента, когда пользователь касается экрана. Это ограничение накладывается браузерами. Как результат, если вы проигрываете музыку On start of layout (на старте уровня), вы можете увидеть, что в этих браузерах музыка не начинает звучать до тех пор, пока пользователь не коснется экрана. Сафари накладывает даже более строгие ограничения, согласно которым никакая музыка не может быть проиграна до первого касания экрана. Другими словами, аудио стартует беззвучно и перестает быть таким после первого касания экрана.

Обычно у вас нет необходимости учитывать это в ваших событиях. Если вы попробуете проиграть звук или музыку On start of Layout, то аудиобъект автоматически поставит ее в очередь проигрывания после того, как пользователь коснется экрана. Однако вам следует иметь это ввиду при проектировании вашей игры: если первое касание изменяет уровень или останавливает музыку, то тогда музыка может быть никогда не услышана. Вы можете оформить все в 2 касания - первое касание на любом месте экрана запускает музыкальное проигрывание, а второе на клавише запускает дальнейший код приложения.

Продвинутые возможности изменения звука
Аудиообъект поддерживает некоторые продвинутые возможности, такие как локализованные звуки и эффекты искривления. Однако они основаны на Web Audio API, который не поддерживается всеми браузерами. Вы можете определить для программы, поддерживаются ои эти специальные возможности при помощи условия Advanced audio supported. Если эти продвинутые особенности не поддерживаются, то аудио не изменится.

  • Positioned sounds (локализованные звуки) - это продвинутая возможность по изменению звука, которая позволяет проигрывать звук по позиции или по объекту на уровне. Используя трехмерный аудио движок, направление и громкость звука регулируются относительно их текущей позиции относительно слушателя. Это простой способ увеличить реализм и глубже погрузить пользователя в игру.

Свойства аудио объекта

  • Timescale audio - шкала времени аудио. Шкала времени игры может быть использована для ускорения или замедления игры, для эффектов наподобие слоумоушн. А рассматриваемое свойство контролирует, будет ли затронуто аудио изменениями в шкале времени игры. Некоторые браузеры могут не поддерживать шкалы времени совсем, проверьте на разных видах браузеров. Также, разные браузеры могут использовать разные алгоритмы растягивания аудиодорожки.

    • Off - аудио не будет зависеть от шкалы времени игры.
    • On (sounds only) - аудио из папки звуков будет проигрываться со скоростью, которая зависит от шкалы времени игры, а аудио из папки с музыкой будет проигрываться всегда с независимой от временной шкалы скоростью.
    • On (sounds and music) - все аудио будет проигрываться со скоростью, которая будет зависеть от шкалы времени.

  • Save/Load - когда используется сохранение игр, определяет какое состояние аудио должно быть сохранено.

    • All, все звуки и вся музыка сохраняется и загружается, так что все звуковые эффекты будут проиграны с того момента, на котором они оборвались при сохранении.
    • Sounds only загрузит только звуки с того момента, как они были сохранены и не затронет проигрывание музыки.
    • Music only соответственно загрузит только музыку с того момента, как она была сохранена, оставив звуки без влияния.
    • None означает, что не создается точек сохранения состояния ни для музыки. ни для звуков.

  • Panning model передает как локализованные звуки передаются

    • HRTF использует реалистичную модель человеческого слуха.
    • Equal Power - это простой метод, который сохраняет общее мощность в стерео канале.

  • Distance model - формула, которая определяет затухание громкости локализованного звука относительно расстояния до слушателя. Линейная, инвертированная и экспонентная.
  • Listener Z height - высота слушателя над уровнем в пикселях используется для определения относительной громкости и панорамирования локализованных звуков. Низкое значение приведет к интенсивным изменениям на маленьких расстояниях, а высокое значение приведет к малым изменениям на больших расстояниях.
  • Reference distance - дистанция на которой громкость локализованного звука начинает снижаться. Для лучшего результата должна быть как мимнимум такой же как и предыдущий параметр.
  • Maximum distance - максимальная дистанция в пикселях после которой локализованные звуки не снижают своей громкости.
  • Roll-off factor показывает как быстро уровень громкости снижается, когда источник локализованного звука удаляется от слушателя. Высокое значение - звук становится тише быстрее.
  • Speed of sound - скорость звука в пикселях в секунду используется для вычисления допплеровского сдвига локализованных звуков.
  • Doppler factor показывает как сильно изменяется тон из-за допплеровского эффекта. 0 отключает допплеровский эффект полностью, а значения больше 1 увеличивают реальный эффект.

Условия аудио объекта

  • Advanced audio supported. Продвинутые возможности по настройке аудио. Если истинно, то текущий браузер поддерживает все возможности из категории Advanced аудио объекта. Если ложно, то никакие из этих возможностей не будут оказывать эффекта на проигрывание звука.
  • Is any playing - истинно, если любое из аудио в настоящий момент проигрывается.
  • Is silent - истинно, если объект был переведен в режим без звука при помощи действия Set silent.
  • Is tag playing - истинно, если любое аудио с данным тегом в настоящий момент проигррывается.
  • On ended - триггер, запускается когда аудио с данным тегом заканчивает игру. Не является триггером для звуков, проигрывающихся в режиме петли.
  • Preloads complete - так как аудио загружается по запросу, аудио файлы начинают загружаться только когда действия Preload или Play используются. Это условие истинно, когда все аудио файлы загружены в достаточной мере, чтобы их можно было проиграть до конца. Это может быть использовано для предзагрузки набора звуков на старте уровня и для перехода на следующий уровень, когда предзагрузка закончена для избежания любого ожидания перед игрой эффекта в первый раз.

Общие действия аудио объекта

  • Play/Play (by name) - начинает проигрывать аудио файл с данным тегом. Действие 2 дает возможность использовать выражение для проигрывания аудио по названию файла. Звук может быть факультативно уложен в петлю, когда он начинает играть. Громкость может быть также настроена в дБ. 0 - оригинальная громкость, больше 0, усиливает звук, меньше нуля снижает уровень громкости. Например, введение - 10 даст снижение звука на 10 дециБелл. Предпочтительнее устанавливать громкость сразу в действии Play, потому что некоторые платформы начинают проигрывать звук сразу же после этого действия.
  • Preload/Preload (by name) - начинает загрузку аудио так, чтобы не было задержки перед его первым использованием. Нет необходимости делать предзагрузку перед игрой, это факультативно. Более подробную информацию смотри выше.Только 2 или 3 наиболее важных звука следует предзагружать за раз. Как только все предзагружаемое аудио с помощью этой функции закончит загружаться, триггер On preloads complete запускается.
  • Set looping - устанавливает будет ли повторен файл после окончания (уложен в петлю) или нет. Не все браузеры в настоящий момент поддерживают эту опцию. Проверьте на разных браузерах перед публикацией.
  • Set master volume - устанавливает общую громкость, которая будет применена ко всем аудио.
  • Set muted - устанавливает звук или выключенным (muted) или слышимым (unmuted).
  • Set paused - устанавливает паузу или возобновляет проигрывание аудио по тегу.
  • Set playback rate - изменяет скорость проигрывания аудио. Разные браузеры могут иметь разные алгоритмы по растягиванию времени или не поддерживать эту опцию совсем. Если свойство Timescale audio включено, то оно комбинируется с данным действием.
  • Set silent - включает, выключает или переключает тихий режим (silent mode). В тихом режиме все играющиеся в настоящий момент аудиодорожки неслышимы и никакие новые звуки не будут проигрываться. Это удобно для быстрого переключения аудио режимов игры на титульном экране.
  • Set volume - установить громкость, изменяет громкость звука. Громкость дана в децибелах, значение в 0 дБ - оригинальная громкость, положительные значения увеличивают громкость, отрицательные уменьшают.
  • Stop - останавливает играющий звук.
  • Stop All - останавливает все звуки играющие в данный момент.

Действия локализованного звука (positioned sound)

  • Play at object/play at object (by name) - обычное действие типа Play, но звук локализован на выбранном объекте. Если объект двигается или вращается во время проигрывания звука, то звук следует за ним, изменяя свои характеристики. Специальный указательный конус может быть приспособлен для создания направленных звуков, которые исходят из определенного угла объекта.
  • Play at position/play at position (by name) - похоже на предыдущее, но источник звука не двигается. Он просто проигрывается с учетом места, угла испускания себя и положения слушателя.

Действия аудио объекта: эффекты
Выбранные аудиоэффекты могут быть добавлены из набора при помощи действия Add effect. Каждый тег имеет свою собственную цепочку эффектов и множество эффектов могут быть добавлены к тегу. Все аудио, проигрываемые с данным тегом будут лежать в области воздействия цепочки эффектов. Это может быть использовано для создания эффектов окружающей среды. Обработка аудиосигнала - это сложная тема, она не является целью данного мануала, поэтому представляется, что пользователь уже знает как использовать данные эффекты. В качестве интерактивного примера, смотрите Audio примеры в стартовом диалоге программы. Краткий обзор предоставлен ниже:

  • Analyser - анализатор, не изменяет аудио, но может передавать ряд данных.
  • Compressor - автоматически увеличивает или уменьшает громкость к некому общему уровню.
  • Convolution - искривление, продвинутый эффект, использующий другой звук для обработки аудио файла. Это позволяет создать эффект окружающей среды в играх.
  • Delay - задержка, производит имитацию эха.
  • Distortion - искажение сигнала по типу усилителя гитары. :Ъ
  • Filter - полезен для простых атмосферных эффектов.
  • Flanger - задерживает звук на несколько миллисекунд, а затем смешивает с самим собой.

Remove all effects - это действие очищает цепочку эффектов определенного заданного тега.
Set effect parameter также позволяет настраивать параметры эффекта в процессе проигрывания. Каждый эффект также имеет микс, который может быть использован для затухания или постепенного нарастания эффекта.


Выражения аудио объекта

  • AnalyserFreqBinAt(Tag, Index, Bin) - получает величину энергии в приемнике частоты анализатора. Продвинутое аудио должно поддерживаться браузером и анализатор эффекта уже добавлен к тегу. Индекс должен быть индексом эффекта (например 0 для анализатора. если он добавлен первым, 1 для второго эффекта и так далее)
  • AnalyserFreqBinCount(Tag, Index) - получает количество возвращенных анализатором "бинов". Продвинутое аудио должно поддерживаться браузером и анализатор эффекта уже добавлен к тегу. Индекс должен быть индексом эффекта (например 0 для анализатора. если он добавлен первым, 1 для второго эффекта и так далее)
  • AnalyserPeakLevel(Tag, Index) - неизвестно.
  • AnalyserRMSLevel(Tag, Index) - неизвестно.
  • EffectCount(Tag) - выдает количество эффектов в цепи эффектов данного тега.
  • Duration(Tag) - выдает продолжительность в секундах аудио сэмпла с тегом.
  • MasterVolume - возвращает текущую общую громкость, настроенную в действии Set master value.
  • PlaybackTime(Tag) - выдает текущий время звучания в секундах звука с данным тегом. Начинается от 0 и заканчивается продолжительностью.
  • Volume(Tag) = выдает уровень громкости аудио с данным тегом.
Источник
Последний раз редактировалось equinox 11 фев 2014, 16:51, всего редактировалось 1 раз.
Аватара пользователя

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

Сообщение Browser
» 08 фев 2014, 02:30

Browser


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

Ограничения ради безопасности иногда препятствуют деятельности браузера. Например, действие Window close (закрыть окно) может быть использовано только в том случае, если окно было создано при помощи javascript window.open call.


Условия браузера

  • Cookies enabled - куки включены, истинно, если куки включены в браузере пользователя. Обычно это редкая ситуация, когда они отключены, поскольку многие сайты требуют их для корректной работы.
  • Is online - истинно, если браузер в настоящее время имеет соединение с интернетом. Игры construct 2 могут работать и оффлайн.
  • On resized - запускается когда окно браузера, который показывает игру, изменяет размеры. Это также включает изменение ориентации на мобильных девайсах. Системные выражения WindowWidth и WindowHeight будут обновлены для того, чтобы оттразить новый размер, если режим полного экрана включен.
  • On went online/On went offline - запускается если соединение с интернетом станвоится доступным или недоступным в течение игры. Это обычно на моибльных устройствах, которые могут перемещаться в и за пределами покрытия сигнала. Условие Is online также изменяется, чтобы отразить статус соединения.
  • Is portrait/landscape - определяет текущее соотношение сторон экрана как портрет (высота больше ширины) или пейзаж (ширина больше высоты). Необходимо для простой проверки размеров окна браузера.
  • On back button. Запускается, когда пользователь нажимает клавишу "назад" на своем устройстве. Заметьте, что не все устройства имеют эту клавишу, например, iOS имеют только кнопку "Дом". Не все платформы поддерживают этот триггер.
  • On menu button. Запускается, когда пользователь наживает кнопку "Меню" на своем устройстве. Заметьте, что не все устройства имеют эту клавишу, например, iOS имеют только кнопку "Дом". Не все платформы поддерживают этот триггер.
  • On search button. Запускается, когда пользователь наживает кнопку "Поиск" на своем устройстве. Заметьте, что не все устройства имеют эту клавишу, например, iOS имеют только кнопку "Дом". Не все платформы поддерживают этот триггер.
  • Is downloading update. Истинно, если игра запущенна из кэша, но загружается обновленная версия в фоновом режиме. Это может быть использовано как простая система автоматического обновления. Для более подробной информации надо смотреть мануал по оффлайн играм.
  • On update ready. Запускается, когда игра запущена из кэша, но обновленная версия закончила загрузку в фоновом режиме. Если пользователь все еще в менб игры или на титульном экране, вы можете захотеть перенести их на обновленную страницу. Смотрите мануал по оффлайн играм для более полной информации.
  • Is fullscreen, истинно если браузер запущен в полноэкранном режиме.
  • Page is visible, истинно, если страница, на которой запущена HTML5 игра в настоящий момент видима. Страница считается скрытой если окно свернуто, вкладка с приложением неактивна или мобильное приложение работает в фоновом режиме. Когда страница скрыта, игра автоматически переводится в паузу.
  • On suspended/On resumed - игра приостановлена или возобновлена. Запускается, когда видимость страницы игры изменяется или когда мобильное приложение переходит в фоновой или активный режимы. Когда невидимо, все аудио станвоится беззвучным, а все события приостанавливаются.

Действия браузера

  • Execute Javascript - выполнить код.
    Делать с большой осторожностью, потому что существуют риски при исполнении строк Javascript. Браузер предоставляет два способа запустить строку как Javascript код: действие Excute Javascript (выполнить Javascript) или выражение ExecJS. И хотя это время от времени полезно, в большей степени это признано опасным.

    Если вы выполните строку, содержающую входные данные от пользователя, возможно, пользователь сможет вставить в выполняемый запрос свой код, который вызовыет уязвимость к внешним угрозам, обрушит игру или позволит использовать чит.Если вы используете возможность, которую поддерживают лишь некоторые из браузеров, то ваша программа обрушится на тех платформах, которые не поддерживают введенную вами возможность. Обычно Construct 2 защищает вас от такого, так как он хорошо протестирован на разных платформах, но такую ошибку просто допустить, если вы исполняете свой код Javascript. Такие не-браузерные платформы как CocoonJS имеют очень ограниченный набор возможностей и потенциально очень уязвимы к такого рода поломкам.Обычно код минимизируют в ходе экспорта. Если вы писали JavaScript, который не совместим с Google Closure Compiler's ADVANCED mode, то это также может вызвать поломку после экспорта. Использование официальных Javascript SDK - это почти всегда более элегантный способ включения пользовательского кода в проекты Construct 2.Если это возможно, пишите свой javaScript в плагине, использующем SDK.

  • Start group/End group - запускает или завершает работу группы консоли ошибок браузера. Группы могут быть факультативно названы.
  • Log - сделать лог-запись сообщения, предупреждения или ошибки в консоль ошибок браузера. Это может быть полезно для дебаггинга, тестирования или диагностики.
  • Go back/Go forward - идти через навигацию истории браузера, нажимая на клавиши назад или вперед.
  • Go home - на главную страницу браузера.
  • Go to URL - навигация на выбранный адрес URL. Обратите внимание, что это будет в той же вкладке, в которой запущена игра, иными словами, это завершит игру.
  • Invoke download -запросить загрузку файла по URL. Даже если это веб страница или документ, она будет загружена как файл интерфейсом браузера. URL может вести в любой адрес интернета или это может быть имя импортированного проектного файла или это может быть URL c данными (полезно для загрузки скриншотов экрана). Параметр имени файла позволяет вам дать название скачиваемому файлу, которое может быть отлично отт имени скачиваемого файла.
  • Invoke download of string - то же, что и предыдущее, но сохраняет в файл не содержимое URL, а содержимое строки. Это удобно для загрузки строк в JSON формате как файлов.
  • Open URL in new window - открывает адрес в новом окне или новой вкладке, это позволяет продолжить игру.
  • Reload - перезагрузить, заставляет страницу перезагрузиться. Это эффективно для рестарта игры.
  • Alert - выводит простое окно тревоги на экран.
  • Blur - расфокусирует окно браузера.
  • Cancel fullscreen - возвращает в оконный режим из полноэкранного, если он в данный момент включен.
  • Close - закрывает текущее окно, если скрипт имеет разрешение сделать это.
  • Focus - фокусирует на данном окне браузера.
  • Lock orientation/Unlock orientation - фиксирует или снимает фиксацию с ориентации экрана. Используется если вам нужно, чтобы приложение работало только в режиме портрета или пейзажа. Только на мобильных устройствах.
  • Request fullscreen - запрашивает вход браузера в полноэкранный режим. Обратите внимание, что браузер может проигнорировать этот запрос, если только он не инициирован пользователем (клик, нажатиеклавиши, касание экрана или нажатая кнопка). Есть три разных полноэкранных режима: Center - центирование, Stretch (crop) - растягивание с обрезанием, Stretch (scale) - растягивание с масштабированием.

Выражения браузера

  • BatteryLevel - возвращает текущий уровень заряда батареи от 0 (полностью разряжена) до 1 (полностью заряжена). Если у устройства нет батареи или этот уровень неизвестен, возвращает 1.
  • BatteryTimeLeft - если устройство имеет батарею и известно оставшееся время ее использования, возвращает оставшееся время в секундах до того момента как система выключится из-за недостатка питания. Если у устройства нет батареи или это время неизвестно, возвращает бесконечность.
  • ExecJS - запускает строку кода и возвращает ее результат как строку или число. Принимать с осторожностью, опасно для жизни приложения.
  • Langage - выводит текущий язык браузера, например, ru.
  • Name - выводит имя браузера.
  • Platform - выводит текущую платформу браузера, например, Win32 для Windows.
  • Product - выводит название продукта браузера.
  • UserAgent - возвращает полную строку информации о браузере, например, Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63.
  • Vendor - возвращает имя продавца браузера, например. Google Inc. for Google Chrome.
  • Version. Версия браузера.
  • DevicePixelRatio - число в физических пикселях на пиксель CSS. Это может быть полезно как индикатор плотности дисплея.
  • ScreenWidth/ScreenHeight - запрашивает полный размер экрана.
  • Title - текущий заголовок документа.
  • Domain - текущий домен, например, c2community.ru
  • Hash - строка после хэша и сам хэш в конце адреса, например, для scirra.com/mygame/index.html#teapot, вернет #teapot.
  • PathName - для scirra.com/mygame/index.html#teapot вернет /mygame/index.html.
  • Protocol - текущий протокол, обычно http: или https:
  • QueryParam. Возвращает параметр строки query по имени. Например, если адрес заканчивается на index.html?foo=bar&baz=wan, QueryParam("foo") вернет bar, а QueryParam("baz") вернет wan.
  • QueryString. Вернет полный адрес строки запроса с отметкой вопроса. Например, если адрес заканчивается на index.html?foo=bar&baz=wan, то выражение вернет ?foo=bar&baz=wan.
  • Referrer - вернет предыдущую страницу, которая связана с этой, если такая есть.
  • URL - выдаст полный текущий адрес, включая протокол.
Источник
Последний раз редактировалось equinox 11 фев 2014, 16:51, всего редактировалось 1 раз.
Аватара пользователя

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

Сообщение Sprite Font
» 08 фев 2014, 11:05

Sprite Font


Объект Sprite Font использует изображение для того чтобы показывать текст. Это объект изображения, который использует сетку, внутри ячеек которой находятся символы для отображения. Прорисовкой частей этого изображения в определенной последовательности, отображаются строки текста. Это осуществляет полный художественный контроль над появлением текста, предоставляя более широкие возможности, чем выбор из существующих шрифтов.

Сравнение с объектом Text
И текст и Sprite Font могут отображать текст в игре. Обычно, объект Текста показывает монохромные буквы существующего шрифта или веб шрифта, которые можно использовать в разном размере, с разным начертанием (полужирный, курсив). С другой стороны, Sprite Font использует изображение для каждого символа. Это означает, что для демонстрации символа может быть использована любая художественная работа, возможен многоцветный текст, но он поддерживает по-настоящему только один размер шрифта и только то начертание, которое вы нарисовали.

Другая важная особенность состоит в том, что традиционные шрифты, созданные при помощи объекта Текст, часто имеют хорошую поддержку Unicode. Это позволяет им потенциально отображать большое количество символов разных алфавитов и множество специальных знаков. Sprite Font же может использовать только те символы, которые были нарисованы. Очень трудно сделать Sprite Font для десятков тысяч знаков, предусмотренных в юникоде. И если Sprite Font установлен как средство показывания текста, внутри которого есть непрорисованный символ, то он просто покажет вместо этого символа пробел. И если вся строка на языке, для символов которого в Sprite Font нет изображения, то ничего не будет выведено на экран. Держите в голове, что если вы позволяете текст, введенный пользователем (например, его имя) или вы хотите в будущем перевести вашу игру, то объект Текста более удобен для этой цели.

Свойства объекта Sprite Font

  • Sprite Font - нажмите на edit (редактирование) для того, чтобы изменить исходное изображение, по матрице которого будут отображаться символы. Изображение может быть любого размера, но желательно, чтобы оно было размером в степенях числа 2 (128*128, 256*256, 512*512). Символы начинаются в левом верхнем углу, последовательность идет слева направо. Когда последовательность достигает правого ребра изображения, идет считывание следующей линии, тоже слева направо. Если символ уже, чем клетка и вы изменяете его ширину при помощи действия Set character width, то изображение должно быть отрисовано с выравниванием по левому краю (актуально для i/I/1/. и некоторых других символов).
  • Character width/Character height - размер каждой клетки в исходном изображении font image. Отдельные символы могут быть отображены с разной шириной с помощью использования действия Set character width. В этом случае символ должен быть отрисован с выравниванием по левому краю.
  • Character set - строка символов, которая описывает последовательность букв в исходном изображении. Это используется как карта соответствия между текстом и изображением. По умолчанию Sprite Font начинается с английского алфавита, но вы можете заменить его на любую последовательность, которая удобна для реализации ваших целей. Еще раз обратите внимание, что только те символы, которые вы укажете здесь, смогут быть отображены при рендере. Символы вводятся последовательно без пробелов.
  • Text - начальный отображаемый текст.
  • Scale - мультипликатор масштаба выводимого текста, 0.5 для половины, 2 для вдвое большего текста, чем в оригинале. Это может быть использовано для имитации различных размеров шрифта., но помните, что это только растягивает или сжимает изображения. Возможно, после просмотренного результата вы захотите перерисовать исходное изображение в другом размере, а не пользоваться этой опцией.
  • Initial visibility - устанавливает начальную видимость объекта.
  • Horizontal alignment - горизонтальное выравнивание текста внутри ограничивающего прямоугольника.
  • Vertical alignment - вертикальное выравнивание текста внутри ограничивающего прямоугольника.
  • Hotspot - расположение "точки сборки" экземпляра объекта, в левом верхнем углу или в середине.
  • Wrapping - перенос, выберите Word для того, чтобы переносить по словам, выберите Character для переноса по символу, что может разбить ваши слова в неожиданных местах, но более удобно для ряда языков.
  • Character spacing - дополнительное пространство между символами по горизонтали.
  • Line height - дополнительное пространство между символами по вертикали, 0 - стандартное значение согласно исходному изображению, отрицательные значения делают линии ближе друг к другу, положительные значения отодвигают линии друг от друга.

Условия Sprite Font

  • Compare text - сравнивает отображаемый в настоящее время текст.

Действия Sprite Font

  • Append text - добавить текст в конец существующего текста.
  • Set character spacing/Set line height/Set scale/Set horizontal alignment/Set vertical alignment - устанавливает соответствующие параметры объекты. Для более подробной информации смотрите свойства этого объекта.
  • Set character width - устанавливает ширину отдельных символов. Например, символ "i" обычно уже, чем символ "w", но по умолчанию оба символа занимают одинаковое место. В результате i будет выглядеть окруженным пустым пространством. Для того, чтобы разрешить эту проблему, следует установить Set character width в размер меньший, чем ширина стандартной клетки. Для ускорения процесса внесения уточнений с узкими символами их можно вводить вместе, например, "iIjl1". Когда ширина символа меньше ширины клетки, только левая часть клетки будет показана, поэтому символы должны быть нарисованы с левым выравниванием. Также здесь можно установить ширину пробела, даже если он не прорисован в исходном изображении.
  • Set text - заменяет исходный текст новой строкой.

Выражения Sprite Font

  • CharacterHeight - возвращает высоту клетки.
  • CharacterScale/CharacterSpacing/LineHeight - возвращает соответствующие параметры объекта. Для более подробной информации смотрите свойства этого объекта.
  • CharacterWidth(char) - возвращает ширину символа. Символ должен быть указан (как строка). Так как выражение может вернуть только одно значение, то если вы укажете несколько символов, только первый будет использован при формировании ответа.
  • Text - возвращает текущий текст.
  • TextWidth/TextHeight - возвращает текущие размеры текста внутри прямоугольной рамки.
Источник
Последний раз редактировалось equinox 11 фев 2014, 16:52, всего редактировалось 1 раз.
Аватара пользователя

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

Сообщение List
» 08 фев 2014, 12:42

List


Объект List создает 2 вида объектов: выпадающий список и листбокс. Выпадающий список показывает только одну позицию, но может быть раскрыт для того, чтобы показать весь лист. Листбокс показывает множество объектов одновременно, выстроенных в вертикальный список. В общем смысле о них горворят как о формах контроля.

Это HTML элементы, которые находятся над игровым канвасом. Другими словами, ничто не может быть отображено поверх такой формы, за исключением другой, подобной ей формы.
Формы контроля располагают себя с учетом параллакса слоя, масштаба и ряда других параметров. На практике это означает, что они не всегда будут находится в точности там, где вы их разместили. Они не располагаются по-настоящему в игре, а, как уже было сказано выше, находятся, как бы между пользователем и игрой. Поэтому рекомендуется воздержаться от использования скроллинга, параллакса и масштабирования слоя с формами контроля, так как результат может выглядеть не слишком натуральным.

Объект можно настраивать большим количеством способов с помощью CSS (каскадные таблицы стиля). Вместо того, чтобы добавлять действия для установки значений всех возможных свойств, объект Лист предлагает действие Set CSS style. Знание CSS будет преимуществом, но это можно сделать и через свойства объекта, например, для того, чтобы сделать текст красным, установите свойство "color" как "red". Для того, чтобы сделать фон желтым, установите "background-color" как "yellow". Для того, чтобы сделать границу тонкой и светло-серой, установите свойство "border" как "3px solid #AAAAAA". Сделать шрифт крупнее? "font-size" в "2em". Сделать пунктирную красную границу? "border" как "2px dashed red".

Свойства объекта List

  • Items - перечисление элементов списка через точку с запятой, последний элемент без точки с запятой.
  • Tooltip - подсказка, которая возникает, если пользователь наводит курсор на объект и ждет. Отображается в большинстве браузеров. Оставьте пустым, если подсказка не предполагается.
  • Initial visibility - видимость на старте программы/уровня.
  • Enabled - включение, если "No", то элементы списка будут отображаться серым и нельзя будет изменить селекцию (выбор) другого элемента.
  • Type выберете между листбоксом (List box) и выпадающим списком (Dropdown list) - об отличиях читайте выше.
  • Multi-select. Только для листбокса. Позволяет выбрать больше, чем один элемент.
  • Auto font size - автоматически изменяет размер шрифта в соответствии с общим масштабом. Это можно предотвратить, выставив с помощью CSS размер шрифта вручную. Выберите "No" если хотите задать размер самостоятельно.
  • ID (факультативно) - опциональный атрибут для элемента в DOM. Может быть полезно для доступа к значениям элемента при помощи внешнего скрипта.

Условия объекта List

  • Compare item text at - сравнить текст данного элемента списка. (указывается номер, нумерация с 0).
  • Compare selected item text - сравнить текст выбранного элемента.
  • Compare selection - сравнить номер выбранного элемента списка (нумерация с 0).
  • On clicked - триггер запускается, когда на элементе совершается щелчок мыши.
  • On double-clicked - триггер срабатывает, когда на элементе совершается двойной щелчок мыши.
  • On selection changed - триггер срабатывает, когда меняется выбранный элемент в списке через касание, щелчки мыши или клавиатуру.

Действия объекта List

  • Set CSS style - установить оформление листа. Обратите внимание, что если Auto font size свойство установлено в положение "Yes", то любые изменения в размере шрифта будут перезаписаны.
  • Add item - добавляет элемент списка после существующих.
  • Add item at - добавляет элемент списка в нужное место (нумерация начинается с 0).
  • Clear - удалить все доступные возможности выбора из списка.
  • Remove - удалить элемент по его номеру (нумерация с 0).
  • Set item text - изменить текст элемента по номеру.
  • Set selection - сделать элемент с данным номером выбранным.
  • Set enabled - включить или отключить, если отключено, то нельзя будет изменить выбор и все элементы будут окрашены в серый цвет.
  • Set tooltip - установить подсказку при наведении на объект.
  • Set focused/Set unfocused - когда фокус на этом объекте, то им можно управлять с клавиатуры.

Выражения объекта List

  • ItemCount - возвращает количество элементов в списке.
  • ItemTextAt - возвращает текст элемента под данным номером (нумерация с 0).
  • SelectedCount - возвращает число выбранных элементов, принимает значения 0 или 1, если разрешено только одно выделение или любое доступное, если для листбокс разрешен мультивыбор.
  • SelectedIndex - номер выбранного в данный момент элемента (нумерация с 0). Для одного возможного выделения.
  • SelectedIndexAt - то же, что и предыдущее, но для для листбокса и мультивыбора.
  • SelectedText - возвращает текст выделенного в настоящий момент элемента.
  • SelectedTextAt - то же, что и предыдущее, но для листбокса и мультивыбора.
Источник
Последний раз редактировалось equinox 11 фев 2014, 16:52, всего редактировалось 1 раз.
Аватара пользователя

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

Сообщение WebSocket
» 08 фев 2014, 14:42

WebSocket


WebSocket - это плагин-обертка для стандартизированного WebSocket протокола. Он позволяет осуществлять двухстороннюю коммуникацию в реальном времени. Так как WebSocket основан на стандартах, он совместим со стандартным WebSocket сервером.

Использование WebSocket плагина требует наличия WebSocket сервера. Cоnstruct 2 не предоставляет сервер. Этот плагин нельзя использовать, чтобы сделать сервер. Если у вас еще нет WebSocket сервера, вам следует создать его используя технологию на подобии node.js с поддержкой WebSocket. Это может быть довольно сложно и потребует от вас знания программирования серверной стороны.

Обратите внимание, что на данный момент плагин WebSocket поддерживает также только текстовые сообщения, а не бинарные тексты.

WebSocket и многопользовательские игры
Может выглядеть заманчивым использовать WebSocket для проектирования многопользовательских игр в реальном времени. К сожалению, несмотря на тот факт, что коммуникация осуществляется в реальном времени, WebSocket в настоящий момент не приспособлен для этого. Из соображений надежности передачи данных, один пакет разбивается на части и может занять весь канал передачи до того, как не будет передан полностью. Для игр с высокими требованиями к обновлениям информации в реальном времени, это вызовет задержки, не совместимые с игровым процессом. Обычно не представляется возможным обойти это ограничение при проектировании без изменения способа передачи. А изменение способ передачи WebSocket не поддерживает.

С другой стороны, WebSocket можно считать подходящим решением для игр без столь значительных требований к частоте обновления, например, для пошаговых игр. Также WebSocket может оказаться полезным для реализации таких приложений, как чат. Впрочем, и для этого вам будет необходим ваш собственный WebSocket сервер.

Условия WebSocket

  • Is connecting - истинно, если в настоящий момент идет соединение с сервером. Соединение все еще не установлено и может быть ошибка.
  • Is open - истинно, если успешно установлено и канал открыт.
  • Is supported - используется перед попыткой установления любых соединений для того, чтобы проверить браузер или используемую платформу на предмет поддержки WebSocket.
  • On closed - триггер запускается, когда соединение закрывается преднамеренно или из-за ошибки. Выражения CloseCode и CloseReason могут указать, почему соединение оказалось закрытым.
  • On error - триггер запускается, когда возникает ошибка в соединении WebSocket. Используйте выражение ErrorMsg для того, чтобы вывести текст ошибки.
  • On opened - триггер запускается, когда соединение успешно установлено и канал открыт.
  • On message - триггер запускается, когда текстовое сообщение поступает от сервера по открытому соединению. Используйте выражение MessageText для того, чтобы получить содержание этого сообщения.

Действия WebSocket

  • Close - закрывает любое активное соединение. В закрытом состоянии сообщения не могут быть получены от сервера или отосланы на сервер.
  • Connect - соединяет с WebSocket сервером. WebSocket сервер обычно начинается с ws:// для небезопасной передачи данных и с wss:// для безопасной передачи. Обратите внимание, что некоторые сетевые конфигурации могут требовать безопасной передачи для того, чтобы корректно выполнять свои функции. Параметр Protocol может быть факультативно назначен запрашиваемому субпротоколу, который посылается при безопасной передачи данных в заголовке. Если сервер отрицает, что он поддерживает выбранный субпротокол, то соединение не установится. Это может быть использовано для предотвращения подключения к серверу клиентов, которые не понимают специальные сообщения вашего приложения.
  • Send text - посылает строку на сервер. Игнорируется, если соединение в настоящий момент не открыто.

Выражения WebSocket

  • CloseCode - в триггере On closed возвращает числовой код причины закрытия канала. Это может быть стандартное возвращаемое значение или значение, возвращаемое от определенного пользователя.
  • CloseReason - в триггере On closed возвращает строку, описывающую причину закрытия. Это опционально и может быть пустым.
  • ErrorMsg в триггере On error, это текст сообщения об ошибке.
  • MessageText в On message, это текст, содержащийся в присланном сервером сообщении.
Источник
Последний раз редактировалось equinox 11 фев 2014, 16:49, всего редактировалось 1 раз.
Аватара пользователя

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

Сообщение
» 08 фев 2014, 16:17

Dictionary


Dictionary хранит строки и числа. Каждое значение имеет ассоциированный ключ, который является строкой. Этот объект является хранилищем, он не проверяет орфографию и не имеет никаких специальных возможностей, связанных с разными языками. Словарь имеет набор пар: ключевое поле-значение.
Ключевые поля в объекте Словарь всегда чувствительны к регистру. Это означает, что ключ "SCORE" признается отличным от ключа "score".


Пример
Предположим, число 100 сохранено в словаре с ключом "score", а строка "Саша" сохранена с ключом "name". Результат в хранилище выглядит как такая таблица:
"name": "Саша"
"score": 100
Запрос ключа "name" при помощи Dictionary.Get("name") вернет "Саша", а запрос "score" выдаст 100. Выставляя "score" 50, мы меняем значение для этого ключа. Это напоминает хранение данных в переменных экземпляра или переменных события, но так как вы можете использовать строки как ключи, вы можете запасать любое количество значений.


Условия Dictionary

  • Compare value - сравнивает значение, сохраненное под конкретным ключом.
  • Has key - проверяет, есть ли такое значение в хранилище.
  • Is empty - истинно, если в хранилище нет ключей.
  • For each key - для каждого ключа, повторяет события один раз для каждого ключа в хранилище. Выражения CurrentKey и CurrentValue возвращают текущий ключ и текущее значение соответственно.
  • Compare current value - валидно только в For each key. Сравнивает значение в текущем ключе.

Действия Dictionary

  • Add key - добавляет новый ключ к хранилищу с заданным значением. Если ключ уже существует, его значение обновляется.
  • Clear - делает объект пустым, удаляя все ключи.
  • Delete key - удаляет ключ и его значение из хранилища. Если ключ не существует, не делает ничего.
  • Set key - обновляет значение ключа, который уже существует. Если ключ не существует, то эффекта нет (в отличие от Add key) ключ не будет добавлен.
  • Download (JSON) - запрашивает браузер сохранить файл, который содержит данные словаря в JSON формате. Это предназначено для оффлайн разработок, например, для создания редакторов уровней.
  • Load (JSON) - загружает все ключи и значения из данных JSON, которые были предварительно получены из словаря через использование действия Download или выражения AsJSON.

Выражения Dictionary

  • Get - возвращает значение, которое сохранено под ключом. Если ключ не существует, возвращает 0.
  • KeyCount - возвращает число ключей в хранилище.
  • CurrentKey/CurrentValue в For each key событии возвращает текущий ключ или текущее значение ключа соответственно.
  • AsJSON. Возвращает содержимое словаря в JSON формате. В дальнейшем это может быть позже загружено при помощи действия Load, послано на сервер через AJAX, сохранено на диск.
Источник
Последний раз редактировалось equinox 11 фев 2014, 16:48, всего редактировалось 1 раз.
Аватара пользователя

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

Сообщение WebStorage
» 08 фев 2014, 17:53

WebStorage


Объект WebStorage может сохранять данные на компьютере пользователя межу сессиями. Например, он может быть использован для реализации хранилища последнего сохранения и предоставляет возможность продолжить игру на следующей день с места окончания. Обратите внимание, что если вы хотите полного сохранения всех особенностей состояния игрового процесса, то вам необходимо воспользоваться возможностью Save and Load, по которой есть отдельное описание.
Несмотря на то, что объект называется WebStorage, он не использует онлайн хранилища. Данные сохраняются локалььно на компьютере и могут быть использованы оффлайн и в экспортерах таких как node-webkit и в мобильных обертках кода CocoonJS.


WebStorage не сохраняет данные в кэше браузера, поэтому если пользователь очищает кэш браузера, данные WebStorage остаются нетронутыми. Однако если пользователь очищает все свои куки и оффлайн данные о сайтах, WebStorage будет очищен. Это сделано специально создателями браузеров для того, чтобы пользователи имели возможность очистить дисковое пространство и предотвратить сбор информации о себе вебсайтами. На платформах, которые не являются браузерами, с адресной строкой ( Windows 8 apps, CocoonJS или node-webkit) это хранилище постоянно и у пользователя нет опции, чтобы очистить его.

Некоторые особенности плагина
WebStorage связывает все сохраненные данные с текущим доменом. Например, все игры, запущенные на scirra.com имеют общие данные, но игры, запущенные на facebook.com используют другой набор данных и не могут получить доступ к данным сохраненным на scirra.com. Многие браузеры накладывают ограничение на максималььный размер данных,который может быть сохранен в WebStorage. Обычный лимит составляет 5 мегабайт. Если вы превысили этот лимит, то WebStorage-триггер On quota exceeded запускается.

Локальное и сессионое хранилище
WebStorage объект позволяет сохранять данные в 2 местах: в локальном хранилище и в сессионном хранилище. Локальное хранилище постоянное (до тех пор, пока пользователь не очистит свой кэш). Если пользователь вернется через несколько дней, локальное хранилище все еще будет содержать сохраненные данные.
Сессионное хранилище хранит данные в пределе текущей сессии браузера. Если пользователь вернется на следующий день, то хранилище окажется пустым.

Использование WebStorage
WebStorage объект использует очень простую модель хранилища: значения сохраняются под именованными ключами, схожим образом с тем, как работает объект Словарь.
Например, значение 100 может быть сохранено для ключа "очки" при помощи действия Set local value "очки" to 100. Таким же образом значение "Джон" может быть сохранено под ключом "имя".
Далее выражение WebStorage.LocalValue("очки") будет возвращать "100" (как строка), а выражение WebStorage.LocalValue("имя") будет возвращать "Джон". И эти значения сохраняются между сессиями браузера. Если вместо локального хранилища было использовано сессионное, то значения будут доступны и сохранны только в течение сессии браузера.
Обратите внимание, что объект сохраняет только строки. Если вы присвоили ключу значение 100, то вернется вам строка "100". Для того, чтобы конвертировать обратно в целое число, используйте системное выражение int, например, int(WebStorage.LocalValue("очки")).

Условия WebStorage

  • Compare key value (as number) - сравнивает значение, присвоенное данному ключу с числом. Т.к. WebStorage объект хранит только строки, то сначала будет конвертация строки в число, а затем сравнение. Если значение ключа не число, условие всегда будет ложным.
  • Compare key value (as text) - сравнивает значение в данном ключе со строкой.
  • Local/session key exists - проверяет сохранено ли значение в локальном или сессионном хранилище.
  • On quota exceeded - при превышении объема хранилища. Большинство браузеров ограничивают размер хранилища в 5 мегабайт. Если этот лимит превышен или пользователь отклоняет предложение браузера увеличить этот лимит, запускаетсяэтот триггер.Вы не сможете добавить никаких новых ключей или присвоить уже существующим ключам новые более длинные значения до тех пор пока выне удалите некоторые значения или не очистите хранилище полностью.

Действия WebStorage

  • Clear local/session storage - очищает локальное или сессионное хранилище для этого домена.
  • Remove local/session value - удаляет ключ и ассоциированное с ним значение из хранилища.
  • Set local/session value - присваивает значение для ключа в локальном или сессионном хранилище. Если ключ не существует, то он создается. Если ключ существует, то он обновляется.
  • Load JSON - загружает ключи и значения в формате JSON данных. Формат данных из объекта Словарь совместим, поэтому 2 этих объекта могут обмениваться данными. Но обратите внимание, что WebStorage хранит только строки. Можно выбрать режимы загрузки. Если Mode is Set (режим "установить"), то WebStorage сначала будет очищен, а затем данные загружены. Если Mode is Merge (режим "совместить"), то данные будут добавлены или перезаписаны (если такие ключи уже есть в WebStorage).

Выражения WebStorage

  • LocalAt/SessionAt - возвращает значение (нумерация с 0) ключа.
  • LocalCount/SessionCount - возвращает число ключей в хранилище.
  • LocalKeyAt/SessionKeyAt - возвращает имя ключа под номером (нумерация с 0).
  • LocalValue/SessionValue - возвращает значение, которое записано под данным ключом. Если ключ не существует, возвращает 0.
  • AsJSON - выводит содержимое локального хранилища в JSON формате. Результат может быть загружен в Словарь, но не все строки WebStorage должны быть строками в Словаре.
Источник
Последний раз редактировалось equinox 11 фев 2014, 16:48, всего редактировалось 1 раз.
Аватара пользователя

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



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

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

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

Наверх