Найти в Дзене

Scratch. Управление событиями.

Оглавление

Когда спрайт начинает выполнять скрипт? Как передать управление от одного скрипта к другому? Отвечу на все вопросы в этой статье.

В предыдущих статьях познакомились с редактором Scratch и с несколькими категориями блоков. Сегодня разберемся с событиями которые заставляют спрайты выполнять скрипт. Ниже будут приведены скрипты с пояснениями. Чтобы проверить их работу, соберите из блоков скрипт у себя в редакторе и запустите. Или скачайте проект к себе на компьютер отсюда.

Для того чтобы скрипт начал выполняться необходимо чтобы наступило какое-то событие. Все события которые могут привести к запуску скриптов находятся в категории "События". Это блоки желтого цвета и их всего шесть.

События запускающие скрипт.
События запускающие скрипт.

Как видно, к этим блокам можно присоединить другие блоки только снизу. И это понятно, так как именно они инициируют запуск скриптов.

Какие события запускают выполнение скриптов?

С некоторыми блоками мы познакомились в предыдущих статьях. И собственно ничего сложного нет. Скрипт может начать выполняться (при условии что в начале скрипта есть соответствующий блок) если наступит одно из событий:

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

С первыми пятью пунктами все понятно. Самый интересный последний 6 пункт.

Как передать управление другому скрипту?

Как известно, в проекте может быть множество скриптов. И для спрайтов и для фона. Чтобы скрипт запустил выполнение другого скрипта, ему нужно как-то подать сигнал. "Эй, твоя очередь работать!" Соответственно, скрипт который ждет передачи ему команды на выполнение должен иметь блок "Когда я получу ...". Для передачи команды (сообщения) используются два блока.

Передача управления другому скрипту.
Передача управления другому скрипту.

Эти блоки различаются немного. Во втором блоке есть фраза "и ждать до конца". Но от этой фразы зависит порядок выполнения скриптов.

В чем различие между блоками передачи сообщений скрипту?

Рассмотрим рисунок ниже.

Различия в передачи управления.
Различия в передачи управления.

В первом случае, блок передает сообщение другому скрипту и продолжает выполнение. Говорит "Все, я передал" и начинает двигаться по циклу, 10 раз на 20 шагов.

Во втором случае, блок передает сообщение другому скрипту и ждет пока тот завершит свое выполнение. Только после того, как спрайт поменяет свои костюмы пять раз, появиться "Наконец-то закончил!" и спрайт начнет двигаться по циклу, 10 раз на 20 шагов.

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

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

Как создать собственное сообщение?

По умолчанию, блоки имеют одно сообщение с названием "сообщение1". Если открыть выпадающий список, до доступен пункт "Новое сообщение". Выбираем его и вводим свое название. На рисунке ниже видны одно сообщение по умолчанию и 4 собственных сообщений.

Создание сообщения.
Создание сообщения.

Это можно сделать как на панели блоков, так и на поле скриптов, перетащив туда один из трех блоков.

Где хранятся и как удаляются собственные сообщения?

Все сообщения хранятся в проекте. Если проект сохранен на компьютере или в интернете, то при открытии проекта вы увидите только те сообщения, которые используются в скриптах. Те сообщения которые были созданы, но не использованы, пропадут.

Передачи управления по событиям.

Ниже представлен проект с помощью которого можно посмотреть как выполняются скрипты. Еще раз разобраться в различиях блоков "передать сообщение" и "передать сообщение и ждать до конца.

Создайте новый проект. Удалите спрайт "Кот", добавьте спрайт "Ball" и соберите скрипты.

Передача управления и управления по событиям.
Передача управления и управления по событиям.

Весь проект со скриптами можно загрузить отсюда.

Как всегда! Легко! Доступно! Просто!

А что дальше?

Дальше мы научимся использовать блоки из категории "Управление". Большая и интересная тема. Разобьем на две статьи. Мои предыдущие статьи.

Если статья вам понравилась, ставьте лайк, подписывайтесь и делитесь в социальных сетях! Спасибо!

Хотите дистанционно обучиться? Вы может связаться со мной.

Если что-то было не понятно, читайте мои статьи на канале.