Занятие №10 "Отправка и получение сообщений"
Как же работает система отправки сообщений в Scratch?
Любой спрайт может передать сообщение (вы можете называть его как хотите), используя блоки передать или передать и ждать (из раздела События), как показано ниже. Сообщение получают все спрайты, но реагируют на него только те, у которых есть соответствующий блок когда я получу. Они исполняют привязанные к этому блоку инструкции.
Посмотрим ниже. На нем показаны четыре спрайта: Морская звезда, Лягушка, Кот и Летучая мышь (Starfish, Frog, Cat1 и Bat1). Морская звезда передает сообщение о прыжке, и его получают все спрайты, включая ее саму. В ответ на него кот и лягушка запускают свои скрипты прыжка. Причем каждый прыгает по-своему, выполняя разный скрипт. Летучая мышь тоже получает сообщение о прыжке, но ничего не делает: она не получила команды, что делать, если получит такое сообщение. Кот на этом рисунке умеет ходить и прыгать, лягушка — только прыгать, а летучую мышь научили только летать.
Команда передать и ждать работает так же, как команда передать, но прежде чем продолжить действовать, она ждет, пока получатели сообщения выполнят свои блоки когда я получу.
Отправка и получение сообщений

Чтобы показать, как работает передача и получение сообщений, создадим простое приложение, рисующее квадраты случайных цветов. Когда пользо- ватель кликает по Сцене левой кнопкой мыши, та распознает это событие (используя функцию когда спрайт нажат) и передает сообщение, которое мы назовем Квадрат (можно выбрать любое другое название). Единственный спрайт в этой программе, получив сообщение, движется к текущей позиции мыши и рисует квадрат. Вот пошаговая инструкция по созданию программы.

  1. Запустите Scratch и выберите Новый из меню Файл, чтобы создать новую программу. Вы можете заменить костюм кота любым другим.
  2. Добавьте блок когда я получу (из раздела События) в поле скриптов спрайта. Кликните по стрелочке вниз на этом блоке и выберите из выпадающего меню новое сообщение ... . В по- явившемся диалоговом окне напишите Квадрат и нажмите OK. Название блока должно измениться на когда я получу Квадрат.
  3. Завершите работу над скриптом, как показано ниже Спрайт сначала поднимает перо и перемещается на текущую позицию мыши, обозначенную блоками мышка по х и мышка по у (из раздела Сенсоры). Затем он выбирает случайный цвет пера, опускает его и рисует квадрат.
Теперь спрайт готов к обработке сообщения Квадрат, когда оно придет. Скрипт на рисунке можно назвать обработчиком сообщений.
Теперь перейдем на Сцену и добавим код, чтобы передать сообщение Квадрат по клику мыши. Кликните по Сцене в списке спрайтов и добавьте два новых скрипта. Первый убирает все следы Пера на Сцене, как только вы кликнете по зеленому флажку. Второй выполняется при клике мышью по Сцене, посылая при помощи блока передать сообщение, получив которое спрайт начинает рисовать.
Программа готова. Чтобы протестировать ее, кликните мышью по Сцене. В ответ она должна начать рисовать квадраты после каждого клика мышью.
Передача сообщений для координирования нескольких спрайтов

Чтобы посмотреть, как несколько скриптов реагируют на одно и то же сообщение, создадим программу, рисующую на Сцене цветы по клику мышью. В программе Flowers пять спрайтов — от Цветок1 до Цветок5 (Flower1 ... Flower5), — которые отвечают за рисование пяти разных цветов.

У каждого спрайта свой костюм. Обратите внимание на то, что фон каждого костюма прозрачен, а также на то, где расположены центры их вращения (отмечены пересечением линий)

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

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

Когда вы кликаете мышью по Сцене, та получает информацию об этом при помощи блока когда спрайт нажат. В ответ на этот сигнал она очищает фон и передает сообщение Рисовать. Все пять спрайтов реагируют на это сообщение, начиная выполнять свои скрипты
Первым делом скрипт присваивает случайные значения эффектам цвета и яркости, а также размеру, чтобы изменить внешний вид цветка. Затем он перемещается на случайную позицию на Сцене по вертикали и рисует цветок, отпечатывая поворачивающиеся копии своего костюма.

Откройте программу Flowers и запустите ее, чтобы посмотреть, как она работает. Несмотря на простоту, результат впечатляет. Предлагаю создать разные костюмы, чтобы получить разные типы цветов. Поменяйте центр костюмов, чтобы получить еще больше интересных вариантов.

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

Scratch - Учись играя!
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website