$

Практическая работа №14. Диалоги -2

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

 

Embed gadget


 

Объект1 всегда будет начинать диалог, оставаясь в одной точке на сцене. Каждый новый собеседник должен начинать движение от правого края сцены после получения сообщения приходиОбъект#, говорить фразы из списка слова после получения сообщения Объект#, идти назад, получив сообщение уходиОбъект#. Переменная часть этих сообщений - #. В проекте мы воспользуемся глобальной переменной и оператором слияния строковых данных.

  1. Откройте проект Диалог.

  2. Создайте глобальную переменную с именем .

  3. Соберите скрипт сцены. В основе алгоритма - цикл со счетчиком повторений - 2. Это число равно количеству собеседников, которые будут вступать в диалог со спрайтом Объект1. Сцена в проекте играет роль светофора - запускает поведение других объектов, меняя значения переменных и посылая сообщения. 

Рис.14.9. Алгоритм действий сцены
 

4. Блок передать может в качестве сообщения использовать и константы, и репортеры:

По своей природе сообщение - это разновидность переменной величины. Только у сообщений нет собственных репортеров. После создания нового сообщения оно появляется в выпадающих списках блоков передать и заголовка когда получу. Причем сообщение исчезнет само, если блок когда получу его не использует для запуска скриптов. Нам нужно создать набор всех сообщений проекта, чтобы появилась возможность использовать соответствующие заголовки:
Рис.14.10. Набор сообщений проекта
 
5. Соберите скрипт появления на сцене Объект1 (рис.14.11). Если значение переменной фраза = 0 (это делает сцена в начале своего цикла, рис.14.9), цикл всегда запускает выполнение трех действий.
Рис.14.11. Алгоритм действий Объект1 по нажатию на зеленый флаг
 
6. Соберите скрипт для обработки сообщения Объект1 (рис.14.12)
Рис.14.12. Алгоритм обработчика сообщения Объект1
 
7. Соберите скрипт для обработки сообщения приходиОбъект2 (Рис.14.13), который отправляет Сцена (рис.14.9).

Рис.14.13. Алгоритм обработчика сообщения приходиОбъект2

8. Соберите скрипт для обработки сообщения Объект2 (рис.14.14), которое отправляет Объект1.
Рис.14.14. Алгоритм обработчика сообщения Объект2
 
9. Соберите скрипт для обработки сообщения уходиОбъект2 (рис.14.15), которое отправляет Сцена (рис.14.15)
Рис.14.15. Алгоритм обработчика сообщения уходиОбъект2
10. Дублируйте спрайт Объект2 со всеми его скриптами и списком фраз в Объект3, измените костюмы нового спрайта.
11. Измените имя персонажа Объект3 в элементе №2 локального списка слова: «Мышка. А тебя как зовут?" Внесите изменения в заголовки скриптов спрайта Объект3, выбрав соответствующие уведомления (рис.14.16).

 

Рис.14.16. Скрипты для спрайта Объект3 отличаются только заголовками

12. Запустите проект на выполнение. Поиграйте.
13. Сохраните проект в файле  Диалоги-2.

 

$