Design Mode: 3. Using Lists in Design Mode
Некоторые странности перевода тех или иных слов/фраз сделаны специально для облегчения чтения и сохранения целостности предложений.
Using Lists in Design Mode (Использование Списков в Дизайн Мод)
Содержание
-Getting Started (Вступление)
-Crash Course (Стахановское введение в Списки)
-Using Lists to Manage Status Effects (Использование Списков для редактирования различных статус-эффектов)
Getting Started (Вступление)
What are Lists exactly? (Так что же это за Списки?)
Если вы когда-нибудь составляли список покупок, то вы готовы использовать Списки в Stencyl. При помощи списка вы можете записывать что-угодно в предсказуемой манере. К примеру, вы добавили Яблоки в Список, а затем добавили Апельсины. Теперь, когда вы будете читать список, Яблоки всегда будут идти перед Апельсинами. Однако, Списки можно использовать не только для того, чтобы запомнить, что нужно купить в магазине.
What are Lists useful for? (Для чего можно использовать Списки?)
Вообще, Stencyl использует Списки, чтобы записать созданных актёров, чтобы определять, какие конкретно точки при Столкновении столкнулись, и так далее. Если вы используете любой блок, начинающийся с “for each”, то вы уже используете Списки.
Вы можете использовать списки для следующих вещей, к примеру:
-Инвентарь
-Характеристики персонажа
-Статус-эффекты (баффы и прочее)
-Выбор случайных монстров для появления в определенных точках (которые также можно занести в список)
Списки хороши тогда, когда вы хотите сохранить много однотипной информации в одной переменной.
But this isn’t a Guide to Writing Inventory Systems! (Но это не гайд по созданию инвентаря!)
Этот параграф рассматривает, скорее, лишь основы использования списков, чем какие-то детальные примеры. Для начала, давайте определимся с терминами: Список состоит из двух частей: Индекс и Предмет. Индекс это число, показывающее, на каком месте в Списке находится Предмет. Индекс начинается с 0, а не с 1. Второй предмет в Списке будет под Индексом 1, и так далее.
Crash Course (Стахановское введение в Списки)
Этот раздел покрывает основы использования Списков на основе простого примера.
В этом примере мы снова вернемся к аналогии списка покупок. Если вы хотите сами попробовать, то нужно создать новую сцену поведений с атрибутом Списка. Когда вы запустите игру, «печатаемые» блоки будут записаны в консоли (кнопка ~, под Esc), которую можно открыть во время теста вашей игры в Флэш-плеере или браузере.
Lets step through this block by block (Давайте разберем всё по кирпичику)
Перед тем, как мы начнем использовать Список, нам нужно добавить в него предметы.
Можно для этого использовать
, или через редактор атрибутов. Проще некуда! В этом примере мы добавим в Список много текста, но вы можете добавлять всё, что захотите, используя этот блок (редактор атрибутов поддерживает только текст и числа)
What can we do with all the items we just added? (Что мы может делать со всеми предметами, которые добавили?)
Ну, мы можем производить итерацию Списка, используя:

«Итерация» это слово для обозначения чтения каждого предмета в Списке. Но просто чтение Списка занятие скучное. Мы можем использовать блок
, чтобы задействовать текущий предмет в списке, один за раз, и пройтись по всему списку. Вы можете использовать этот блок в любой месте, где можно использовать подобные блоки.
What if I decide later I don’t want bananas? (А что, если я позже решу, что бананы мне не нужны?)
Что ж, если продолжать аналогию с реальной жизнью. Так, если мы будем читать список нашему другу, и он вспомнит, что у нас всё еще есть немного бананов, и нам, в принципе, не нужно ещё, то используем
, чтобы удалить предмет из списка. Как вариант, мы можем удалить Бананы из нашего Списка используя блок
. Однако, в следующий раз, когда мы будем удалять предмет #3, он будет другим (Произойдет смещение предметов в Списке, предмет, который был четвертым, станет третьим, даже если вы его не перемещали сами). Кроме того, мы можем удалять предметы по Индексу, даже не зная, что содержится в Списке.
Isn’t it hard to remember what’s at each index? (А разве не сложно запоминать, что скрывается под каждым индексом (номером списка)?)
Да, временами просто невозможно определить, что там. К примеру, если вы постоянно добавляете и удаляете из инвентаря различные ресурсы, спустя некоторое время вы не сможете сказать, предмет #4 – это щит, или меч, или зелье. Вот почему итерационные блоки или блоки типа
важны.
There are cases where you won’t add or remove items from a list (Пример того, когда не нужно добавлять или убирать предметы из списка)
К примеру, вы делаете свою мега-РПГ, в которой пять классов персонажей с пятью параметрами у каждого. Получается, чтобы сохранить все данные, понадобится 5*5=25 переменных. Это много, и вскоре вы можете запутаться. Однако, вы можете создать Список для каждого класса персонажа, и вам нужно будет лишь решить (или вы можете написать Кастом Блок для этого) какой индекс под какой параметр отойдет. Например, можно так:
-Index 0 = Strength
- Index 1 = Agility
-Index 2 = Charisma
-и так далее…
Using Lists to Manage Status Effects (Использование Списков для редактирования различных статус-эффектов)
Давайте завершим этот параграф тем, как использовать Списки для наших нужд в Stencyl. К примеру, Статус-эффекты, которые являются обыденными во многих играх, от РПГ до шутеров, и Списки очень нам помогут в этом. Хотя, Список может быть не очень уместным в том случае, если можно использовать атрибуты для слежения за статусами Актёра (отравлен, спит и т.д.), Список позволяет не засорять Поведения (Behaviours) для лёгкого их редактирования. Единственной проблемой являются опечатки, но это легко решаемо, если использовать Кастом Блоки.
Со всем тем, что мы изучили, это может показаться чересчур сложным, но на самом деле весь механизм состоит из трёх блоков (смотрите скриншот правее). Более подробный пример этого поведения смотрите в Forge в “Status Effect List Example” (в общем, ищите в примерах самой программы в интернете – прим.пер.).
Полное или частичное копирование данного перевода на бич-сайты да и вообще карается шлёпкой по попке. Перевёл Загё. На счет непонятностей и неточностей – в комментарии.