Сцена

В Scratch сцена – это такой же полноценный объект как спрайт, но с некоторыми особенностями. Если у спрайта может быть несколько разных костюмов, то у сцены может быть несколько разных фонов. Сцена может иметь собственные скрипты. Однако не все команды спрайтов доступны для сцены. Например, у сцены нет всех блоков раздела "Движение".

В Scratch, когда создается новый проект, у сцены имеется только один фон – белый лист. Для добавления новых фонов предназначена панель сцены, которая находится в нижней правой части интерфейса среды программирования:

Панель сцены в Scratch

Обратите внимание, когда вы кликаете по этой панели, сцена выделяется, а на вкладке "Код" будут команды для сцены. Также вкладка "Костюмы" теперь будет называться "Фоны". Здесь можно нарисовать фон, добавить новый, поменять фоны местами и т. д.

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

Сначала надо добавить три фона для сцены:

Вкладка фонов сцены

Исходный белый фон удалим.

Теперь составим скрипт перемещения спрайта в направлении к зажатому курсору мыши:

Скрипт перемещения спрайта при зажатой клавише мыши

Данный скрипт может не совсем правильно работать, когда вы находитесь в режиме кодирования. Несмотря на команду "перетаскивать нельзя", спрайт все равно можно будет перетаскивать мышью. Поэтому для тестирования игры лучше переключаться в полноэкранный режим.

Полноэкранный режим в Scratch

Вспомним, что размер холста в Scratch равен 480х360 пикселей, а начальная точка системы координат находится в центре. Поэтому у правого края значение x = 240, у левого x = -240. Пусть фон меняется, когда координата x спрайта равна 200 или -200.

Когда координата кота станет больше 200, он будет посылать одно сообщение, а когда меньше -200 – другое. Сцена, в зависимости от того, какое сообщение она получит, будет делать активным тот или иной фон.

Скрипты спрайта:

Спрайт посылает сообщение, чтобы сменить фон сцены

Обратите внимание, мы отслеживаем не только координату x, но и то, какой фон активен на данный момент. Ведь если кот переходит в другие комнаты, там эти блоки "если" не должны работать. В других комнатах все по-другому.

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

Номер фона определяется его положением на вкладке "Фоны". Вместо номеров можно использовать имена фонов.

Скрипты сцены:

Изменение фона сцены

Задание

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

Курс с ответами к заданиям и двумя дополнительными уроками:
PDF-версия, android-приложение