Литература: Шапошникова Светлана Вячеславовна
Лаборатория юного линуксоида - http://younglinux.info
Тема. Управление несколькими объектами. Упражнения
Упражнение 1. Последовательное выполнения скриптов объектами.
При последовательном выполнении скриптов сначала все действия должен осуществлять один объект, затем второй и т.д.
Как же это можно сделать в Scratch?
Например, можно просто использовать команду ждать в начале скрипта второго объекта. Но на самом деле это будет никакое не последовательное выполнение скриптов, так как оба они начнут работать одновременно, просто у второго объекта сначала будет долго работать команда ждать.
Рассмотрим, более грамотный способ организации последовательного выполнения скриптов.
|
Организуем для двух объектов последовательное выполнение скриптов. Среда Scratch2.
Допустим, по нашему сценарию планируется такая анимация:
- кот сначала ходит туда-сюда, после чего исчезает,
- и по экрану начинает двигаться снежинка (например). Проект
Первый скрипт- скрипт кота: | Второй скрипт - скрипт снежинки: |
Понятно, что при первом исполнении скрипта она не имеет никакого значения. Цикл всегда был заменен на цикл повторить ..., потому что нам больше не надо, чтобы объект двигался бесконечно. |
Теперь посмотрим, что будет делать второй объект:
|
Упражнение 2. Одновременное выполнение нескольких скриптов одним объектом.
В Scratch можно сделать так, что два (или более) скрипта одновременно будет выполнять один объект.
- Допустим, кот будет шагать и при этом менять свои размеры, форму и другие свойства.
- При этом ходьба и изменение свойств друг с другом никак не будут связаны.
Сделать это можно, например, разместив два разных скрипта в среде скрипта для кота:
Проект |
При нажатии на кнопку запуска начнут работать оба скрипта сразу:
Команда очистить графические эффекты возвращает объект к его исходному внешнему виду.
|
Упражнение 3а. Интерактивность. Если кот с Scratch реагирует на действия реального человека (например, нажатие пользователем определенной клавиши), то это уже интерактивность, потому что объекты принадлежат разным "средам обитания".
1. Пусть нужно сделать так, чтобы человек мог управлять поведением кота на холсте Scratch. Напишем такой сценарий
После его запуска, объект будет преследовать указатель, если левая кнопка мыши не нажата.
2. Дополним проект еще одним исполнителем следующим образом:
итог -проект
Переменные и условный оператор
Упражнение 3б. Усложним программу следующим образом:
- Пусть объекты перемещаются не вместе, а порознь: сначала один бегает за курсором, затем - другой.
- Переключение «активности» между объектами происходит с помощью клавиши пробела.
Как организовать такую программу?
1. Создадим ячейку-переменную под именем идущий.
3. Изменение значения переменной будет происходить при нажатии клавиши пробела. Поскольку данная часть программы относится к обоим объекта, то уместно расположить скрипт в объекте Сцена (хотя не обязательно), переключившись на него. Вот этот сценарий: |
|
|
Мы ничего не "клали" в переменную, однако по умолчанию ей и так присваивается значение 0, поэтому нам это делать не обязательно. К тому же, если вдруг сначала в переменной будет не ноль, то ничего страшного: сработает ветвь или.
Получается, что нажатие клавиши пробел попеременно меняет значение переменной идущий. |
Нужно организовать проверку значения переменной. Для этого прекрасно подойдет простая инструкция если. Вот такие сценарии выходят для первого и второго объектов: проект |
|
Можно и дальше поиграть с интерактивностью. Пусть объекты меняют свой внешний вид при нажатии определенных клавиш.
|
Самостоятельная работа
Составьте программу в среде Scratch, при выполнении которой пользователь может управлять объектом с помощью стрелок на клавиатуре, а при нажатии каких-либо других клавиш, объект "думает" разные "мысли