Сцена и фоны в Scratch
В Scratch сцена – это такой же полноценный объект как спрайт, но с некоторыми особенностями. Если у спрайта может быть несколько разных костюмов, то у сцены может быть несколько разных фонов. Сцена может иметь собственные скрипты. Однако не все команды спрайтов доступны для сцены. Например, у сцены нет всех блоков раздела "Движение".
В одном проекте Скретча может быть множество спрайтов, и у каждого будет свой набор костюмов. Однако сцена всегда одна, но у нее может быть набор фонов.
В Scratch, когда создается новый проект, у сцены имеется только один фон – белый лист. Для добавления новых фонов предназначена панель сцены, которая находится в нижней правой части интерфейса среды программирования:
Обратите внимание, когда вы кликаете по этой панели, сцена выделяется, а на вкладке "Код" будут команды для сцены. Также вкладка "Костюмы" теперь будет называться "Фоны". Здесь можно нарисовать фон, добавить новый, поменять фоны местами и т. д.
Если у сцены есть разные фоны, очевидно, что в процессе игры или анимации предполагается, что они будут меняться. Пусть по сценарию кот перемещается по трем разным комнатам. Одна из них играет роль центральной. Когда кот доходит до ее левого края, то переходит во вторую комнату. А когда кот доходит до правого края центральной, переходит в третью комнату.
Сначала надо добавить три фона для сцены:
Исходный белый фон удалим.
Теперь составим скрипт перемещения спрайта в направлении к зажатому курсору мыши:
Данный скрипт может не совсем правильно работать, когда вы находитесь в режиме кодирования. Несмотря на команду "перетаскивать нельзя", спрайт все равно можно будет перетаскивать мышью. Поэтому для тестирования игры лучше переключаться в полноэкранный режим.
Вспомним, что размер холста в Scratch равен 480х360 пикселей, а начальная точка системы координат находится в центре. Поэтому у правого края значение x = 240, у левого x = -240. Пусть фон меняется, когда координата x спрайта равна 200 или -200.
Когда координата кота станет больше 200, он будет посылать одно сообщение, а когда меньше -200 – другое. Сцена, в зависимости от того, какое сообщение она получит, будет делать активным тот или иной фон.
Скрипты спрайта:
Обратите внимание, мы отслеживаем не только координату x, но и то, какой фон активен на данный момент. Ведь если кот переходит в другие комнаты, там эти блоки "если" не должны работать. В других комнатах все по-другому.
Во вторых, внутри "если" команда изменения координаты x используется для того, чтобы кот на другом фоне появлялся с верной стороны. Ведь если он входит в левую комнату, то на ней должен появляться с правой стороны.
Номер фона определяется его положением на вкладке "Фоны". Вместо номеров можно использовать имена фонов.
Скрипты сцены:
Задание 1
Доделайте приведенный в уроке сценарий так, чтобы спрайт мог возвращаться из левой и правой комнат в центральную.
Задание 2
Добавьте на сцену любой понравившийся фон из коллекции Scratch. Сделайте так, чтобы при зажатии курсора мыши на сцене (блок "когда кликнут по сцене") фон начинал бы дрожать. Для имитации подрагивания можно использовать блок "установить эффект …", выбрав в качестве варианта "укрупнение пикселей".
PDF-версия курса с ответами к заданиям