Когда спрайт начинает выполнять скрипт? Как передать управление от одного скрипта к другому? Отвечу на все вопросы в этой статье.
В предыдущих статьях познакомились с редактором Scratch и с несколькими категориями блоков. Сегодня разберемся с событиями которые заставляют спрайты выполнять скрипт. Ниже будут приведены скрипты с пояснениями. Чтобы проверить их работу, соберите из блоков скрипт у себя в редакторе и запустите. Или скачайте проект к себе на компьютер отсюда.
Для того чтобы скрипт начал выполняться необходимо чтобы наступило какое-то событие. Все события которые могут привести к запуску скриптов находятся в категории "События". Это блоки желтого цвета и их всего шесть.
Как видно, к этим блокам можно присоединить другие блоки только снизу. И это понятно, так как именно они инициируют запуск скриптов.
Какие события запускают выполнение скриптов?
С некоторыми блоками мы познакомились в предыдущих статьях. И собственно ничего сложного нет. Скрипт может начать выполняться (при условии что в начале скрипта есть соответствующий блок) если наступит одно из событий:
- нажата кнопка с зеленым флажком
- нажата одна из клавиш клавиатуры
- щелкнули по спрайту
- когда измениться фон проекта
- когда громкость звука превысит заданный уровень
- когда скрипт получит некой сообщение
С первыми пятью пунктами все понятно. Самый интересный последний 6 пункт.
Как передать управление другому скрипту?
Как известно, в проекте может быть множество скриптов. И для спрайтов и для фона. Чтобы скрипт запустил выполнение другого скрипта, ему нужно как-то подать сигнал. "Эй, твоя очередь работать!" Соответственно, скрипт который ждет передачи ему команды на выполнение должен иметь блок "Когда я получу ...". Для передачи команды (сообщения) используются два блока.
Эти блоки различаются немного. Во втором блоке есть фраза "и ждать до конца". Но от этой фразы зависит порядок выполнения скриптов.
В чем различие между блоками передачи сообщений скрипту?
Рассмотрим рисунок ниже.
В первом случае, блок передает сообщение другому скрипту и продолжает выполнение. Говорит "Все, я передал" и начинает двигаться по циклу, 10 раз на 20 шагов.
Во втором случае, блок передает сообщение другому скрипту и ждет пока тот завершит свое выполнение. Только после того, как спрайт поменяет свои костюмы пять раз, появиться "Наконец-то закончил!" и спрайт начнет двигаться по циклу, 10 раз на 20 шагов.
В этом основное отличие между двумя блоками передачи сообщения. В нашем примере, можно сделать так чтобы третий скрипт, который принял сообщение, тоже передал сообщение четвертому скрипту. И в зависимости от того какой блок будет использоваться, все наши предыдущие скрипты или продолжат свое выполнение или также будут ждать завершение работы четвертого скрипта.
Внимание, можно неправильно составить скрипты с помощью передачи сообщений и получится замкнутый круг. Когда скрипты передают сообщение друг другу.
Как создать собственное сообщение?
По умолчанию, блоки имеют одно сообщение с названием "сообщение1". Если открыть выпадающий список, до доступен пункт "Новое сообщение". Выбираем его и вводим свое название. На рисунке ниже видны одно сообщение по умолчанию и 4 собственных сообщений.
Это можно сделать как на панели блоков, так и на поле скриптов, перетащив туда один из трех блоков.
Где хранятся и как удаляются собственные сообщения?
Все сообщения хранятся в проекте. Если проект сохранен на компьютере или в интернете, то при открытии проекта вы увидите только те сообщения, которые используются в скриптах. Те сообщения которые были созданы, но не использованы, пропадут.
Передачи управления по событиям.
Ниже представлен проект с помощью которого можно посмотреть как выполняются скрипты. Еще раз разобраться в различиях блоков "передать сообщение" и "передать сообщение и ждать до конца.
Создайте новый проект. Удалите спрайт "Кот", добавьте спрайт "Ball" и соберите скрипты.
Весь проект со скриптами можно загрузить отсюда.
Как всегда! Легко! Доступно! Просто!
А что дальше?
Дальше мы научимся использовать блоки из категории "Управление". Большая и интересная тема. Разобьем на две статьи. Мои предыдущие статьи.
Если статья вам понравилась, ставьте лайк, подписывайтесь и делитесь в социальных сетях! Спасибо!
Хотите дистанционно обучиться? Вы может связаться со мной.
Если что-то было не понятно, читайте мои статьи на канале.