четверг, 20 июня 2019 г.

Руководство по Fungus. Блоки

Фундаментальная основа Fungus - Блоки. Они содержат Fungus Команды(Commands) и находятся внутри Блок-Схем.

Проверка свойств Блока

Блоки находятся внутри Блок-Схем. В Блоках хранятся Fungus Команды(Commands). Каждый Блок может содержать 1 или более Команды(Commands):



Для проверки свойств блока сделайте следующее:

  1. (настройка) Создание Блок-Схемы Fungus.
  2. Нажмите, чтобы выбрать Блок в новой Блок-Схеме. Вы должны увидеть свойства Блока, отображаемые в окне Инспектор(Inspector):

Настройка имени Блока


При работе с более чем одним блоком важно называть каждый блок осмысленным образом. Чтобы переименовать блок, сделайте следующее:
  • (настройка) Создайте Блок-Схему Fungus.
  • Быбрать Блок в новой Блок-Схеме, нажав на него. Выбранный Блок будет иметь зеленый контур.
  • Вы должны увидеть свойства Блока, отображаемые в окне Инспектор(Inspector):
  • В окне Инспектор(Inspector) измените текст в Block Name на «Say Hello».
  • Теперь вы должны увидеть, что Блок был переименован в окне Блок-Схемы:


  • Теперь добавьте подробное описание блока в свойстве «Description» в окне Inspector:



Создание блока


Для создания нового Блока сделайте следующее:
  • (настройка) Создайте Блок-Схему Fungus (или просматривайте Блок-Схему вашего текущего проекта).
  • Нажмите кнопку «Add New Block» (знак «+») в верхнем левом углу окна Блок-Схемы:


  • Новый Блок должен быть добавлен в вашу Блок-Схему (с именем по умолчанию «New Block» или «New Block1/2/3 и т. д.», Чтобы каждое имя было уникальным)

    Примечание - самое подходящее время дать осмысленное имя Блоку сразу после его создания ...

Удалить блок


Чтобы удалить Блок из текущей Блок-Схемы, выполните следующие действия:

  • (настройка) Создайте Блок-Схему Fungus (или просматривайте Блок-Схему вашего текущего проекта).
  • Щелкните правой кнопкой мыши на Блоке, который вы хотите удалить, и выберите в меню: Delete:


    Блок удален из Блок-Схемы:


Дублировать блок


Для дублирования (клонирования / создания точной копии) Блока в текущей Блок-Схеме, выполните следующие действия:
  • (настройка) Создайте Блок-Схему Fungus (или просматривайте Блок-Схему вашего текущего проекта).
  • Щелкните правой кнопкой мыши по Блоку, который вы хотите дублировать, и выберите меню: Duplicate:


  •     Копия Блока теперь в Блок-Схему (с добавлением «(copy)» к имени дубликата):


    Обратите внимание - самое подходящее время дать осмысленное имя Блоку сразу после его дублирования ...

Перемещение Блоков


Для перемещения / перестановки блоков в окне Блок-Схемы выполните следующие действия:

  • (настройка) Создайте Блок-Схему Fungus (или просматривайте Блок-Схему вашего текущего проекта).
  • Переместите Блок, щелкнув левой кнопкой мыши и перетащите его:


  • Когда вы отпустите кнопку мыши, Блок останется там:

 3 типа блоков


Блок-Схему Fungus визуально различают три разных типа Блоков:
  1. Блок Событий(Event Block) - синий прямоугольник с закругленными углами (выполнение Блока инициируется событием)
  2. Блока Ветвления(Branching Block) - оранжевый шестиугольник (передает управление двум или более другим Блокам, а не блоку событий)
  3. Стандартный блок(Standard Block) - желтый прямоугольник (нет события, передает управление 0 или 1 другим Блокам)

1: Блок Событий(Event Block) - синий прямоугольник с закругленными углами

Один из способов, которым Fungus решает, когда начинать выполнение Команд(Commands) внутри Блока, - если Блок определил Execute On Event(Выполнить По Событию). Если в Блоке выбрано любое из возможных событий «Execute On Events» (например, Game Started, Message Received, Sprite Drag Completed, Key Pressed и т. д.), то этот Блок будет отображаться в виде прямоугольника с закругленными синими краями:




Как мы видим, Блок по умолчанию, созданный с каждой новой Блок-Схемой, автоматически определяет Game Started Execute On Event, поэтому этот Блок всегда отображается как Блок Событий.

ПРИМЕЧАНИЕ. Блок с Execute On Event всегда будет отображаться как Блок Событий на Блок-Схеме, независимо от того, содержат ли его команды Меню(Menu) или Вызовы(Calls) для 2 или более Блоков). Другими словами, с точки зрения появления Блок-Схемы, отображение Блока Событий переопределяет отображение Блока Ветвления.

2: Блок Ветвления - оранжевый шестиугольник


Если Блок не является Блоком событий и его команды включают в себя команды Calls и / или Menu для выполнения команд в 2 или более других Блоках, то в окне Блок-Схемы этот Блок будет отображаться как Блок Ветвления, в виде оранжевого шестиугольника.



3: Стандартный блок - желтый прямоугольник

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


Связи между Блоками

Логика всей сцены редко может вместить все в один Блок, поэтому нам нужны способы, чтобы один Блок мог передать управление выполнением другим Блокам. Есть несколько способов сделать это, наиболее распространенным из которых является:
  1. Команда Call
  2. Команда Menu

Выполнение Команд в другом Блоке с помощью Команды Call


Команда Call говорит Fungus пойти и начать выполнять команды в именованном Блоке. Есть несколько способов сделать это, мы можем сказать Fungus полностью остановить выполнение в текущем Блоке и просто передать управление названному Блоку. Мы также можем сказать Fungus пойти и выполнить все команды в названном Блоке, а когда они будут завершены, продолжить выполнение любых оставшихся команд в текущем Блоке. Наконец, и, возможно, самый сложный / изощренный метод, мы можем сказать Fungus, что оба начали выполнять команды в именованном Блоке WHILE, одновременно продолжая выполнять оставшиеся команды в текущем Блоке.

Чтобы передать управление другому Блоку и прекратить выполнение команд в текущем Блоке, выполните следующие действия:
  • (настройка) Если вы еще этого не сделали: создайте новую сцену, добавьте к ней Блок-Схему Fungus и выберите Блок на Блок-схеме.
  • Переименуйте этот Блок в «Start».
  • Добавьте в Блок «Start» команду «Say» в Story Text «I am in Start».

  • Добавьте новый Блок в Блок-схему с именем «Block2».
  • Добавьте в Блок "Block2" команду "Say" в Story Text "I am in Block2".
  • Добавить в Блок «Start» команду вызова, выбрав в меню: Flow | Call:

  • С этой выбранной Командой Call, в окне Инспектор выберите Block2 из списка Блоков для свойства Target Block:
  •  Примечание. Мы оставим по умолчанию Target Flowchart (None), что означает текущую Блок-схему(Flowchart).
  • Примечание. Мы сохраняем значение по умолчанию Stop Mode (Stop), что означает, что выполнение в текущем Блоке (Start) будет остановлено после начала выполнения вызываемого Блока.
  • Теперь вы должны увидеть стрелку в окне Блок-схемы, соединяющую Блок «Start» с Блоком «Block2». Это визуально говорит нам, что в Блоке «Start» присутствует команда вызова или меню, которая говорит Fungus выполнять команды в Блоке «Block2»:

Выполнение другого Блока

Давайте воспользуемся приведенной выше командой Say, чтобы задать сложный математический вопрос, и продемонстрируем команду Menu, предложив пользователю выбор «правильных» и «неправильных» ответов. Команды меню передают управление другому Блоку - поэтому нам нужно добавить 2 новых Блока, соответствующие 2 ответам. Сделайте следующее:
  • (настройка) Создайте новую сцену, добавьте к ней Блок-Схему Fungus и выберите Блок на Блок-схеме.
  • Переименуйте Блок в Блок-Схеме на «Question».
  • Создайте команду Say в Story Text, чтобы задать вопрос: «Is 2 + 2?».
  • Снимите флажок «Wait For Click» (это так, что мы видим пункты меню сразу после того, как команда Say отобразила вопрос):

  • Создайте новый Блок с именем «Correct», содержащий команду Say с текстом «Well done, you are very mathematical!». Нажмите кнопку со знаком плюс в окне Блок-Схемы, чтобы добавить новый Блок, переименуйте его в «Correct» и добавьте команду «Say»:


  • Выберите Блок «Question» и добавьте команду Menu, нажав кнопку «Добавить» в Инспекторе, а затем выберите меню: Narrative | Menu.
  • С помощью новой команды Menu, выделенной (зеленым) в верхней половине окна Инспектора, установите для Text значение «Yes», а для Target Block - новый Блок «Correct»:

  • Теперь вы должны увидеть, как «поток» команд может измениться с Блока «hello» на Блок «Correct» в окне Блок-Схемы:

  • Добавьте второй новый Блок с именем «Wrong», содержащий команду Say с текстом «Bad luck, perhaps consider a non-mathematical career path...»


  • Теперь нам нужно добавить еще одну команду Menu в наш Блок «hello», предлагая пользователю ответ «No» на наш математический вопрос и передавая управление Блоку «Wrong», если они не согласны с тем, что 2 + 2 = 4. Выберите «hello» и добавьте команду Menu. С помощью этой новой команды Menu, выделенной (зеленый) в верхней половине окна Инспектора, установите для Text значение «No», а для Target Block - новый Блок «Wrong».
  • Теперь вы должны увидеть в окне Блок-Схеме, как Блок «hello» может передать управление Блоку «Correct» или Блоку «Wrong» - в зависимости от того, какой ответ меню выбирает пользователь.

  • Запустите сцену, и вы должны увидеть вопрос Say в нижней части экрана, а также две кнопки меню «Yes» и «No» в центре экрана. Нажатие «Yes» затем запускает команду Блока «Correct», а нажатие «No» запускает команды Блока «Wrong»:

Подсветка Соединений

В окне Инспектора, если вы выберете команду «Call» или «Menu» (выполнение команд в другом Блоке той же Блок-Схеме), вы увидите стрелку между двумя Блоками, выделенную зеленым цветом:

Настройки Обработчика Событий

События - это один из способов объявить, когда вы хотите начать выполнение команд в Блоке. Типичные события включают в себя:
  • Game Started
  • Flowchart enabled
  • Message Received
  • Нажатие Клавиш (вверх / вниз / повтор)
  • Клик на Спрайте / Взаимодействия Перетаскиванием
Самым распространенным событием, используемым для определения того, когда Блок должен начать выполнение, является, конечно, событие Game Started. Каждая новая Блок-схема автоматически начинается с одного пустого Блока, который определен для Старта Игры(Game Started):


Чтобы изменить Событие(Event), определенное для Блока, или назначить событие для Блока, у которого None, сделайте следующее:
  • Выберите Блок в окне Блок-Схемы.
  • В окне Инспектор для свойства Execute On Event выберите во всплывающем меню нужное событие:

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.