Занятие №4 "Использование команд движения"
Если вы хотите делать игры или другие анимированные программы, чтобы перемещать спрайты по Сцене, нужно использовать блоки из раздела Движение. Более того, вам нужно будет давать спрайтам команду переместиться в конкретную точку на Сцене или повернуть в определенном направлении.
Если вы хотите узнать больше об этих или любых других блоках, используйте окошко Подсказка, которое находится справа от панели Скрипты. Если вы не видите его, кликните по знаку вопроса в верхнем правом углу редактора проектов.
Ранее вы видели на Сцене прямоугольную систему координат 480 × 360 с центром в точке (0, 0). В Scratch есть четыре команды абсолютного движения (перейти в, плыть в, установить x в и установить y в), которые дают вам возможность сообщить спрайту, куда ему переместиться.

Чтобы продемонстрировать, как работают эти команды, представим, что вы хотите, чтобы спрайт Ракета на рисунке ниже попал в имеющую форму звезды цель, расположенную в точке (200, 150). Самый очевидный способ — использовать блок перейти, как показано на рисунке справа. Ось x показывает, куда спрайту нужно переместиться по горизонтали, а ось y — по вертикали.
Ракета не повернется носом к цели, но будет двигаться по невидимой прямой, соединяющей ее исходное местоположение, точку (0, 0), с точкой (200, 150). Вы можете заставить ракету замедлить движение, если используете команду плыть к. Она практически идентична перейти, но позволяет устанавливать время, которое понадобится ракете, чтобы достичь цели. Другой способ попасть в цель — независимо друг от друга изменить координаты x и y спрайта-ракеты при помощи блоков установить х в и установить у в. Помните, как вы использовали блок установить х в, когда делали игру Pong?
Команды движения работают относительно центра спрайта, который вы можете установить в графическом редакторе. Например, если отправить спрайт в точку (100, 100), он переместится так, что его центр окажется в точке (100, 100). Поэтому, если вы рисуете или импортируете костюм для спрайта, который планируете перемещать, обратите внимание на его центр!
Вы всегда можете видеть текущие координаты спрайта в правом верхнем углу поля скриптов. Если вы хотите, чтобы эта информация отображалась на Сцене, используйте блоки-репортеры положение х и положение у. Поставьте галочки в чекбоксах около них, чтобы увидеть их значения на Сцене.



УПРАЖНЕНИЕ 4.1

Запишите список координат спрайта-ракеты после выполнения каждой из команд приведенного ниже скрипта.
Относительное движение

А теперь посмотрите внимательно на сетку координат ниже, где показаны другие спрайты Ракета и Цель. На этот раз вы не видите координат, поэтому точное расположение спрайтов вам неизвестно. Если бы вам нужно было объяснить ракете, как попасть в цель, вы могли бы сказать: «Сделай три шага, потом поверни направо и сделай еще два шага»
Идти и повернутькоманды относительного движения. Например, первая команда «идти» сверху заставляет ракету двигаться вверх, а вторая отправляет ее направо. Движение зависит от текущего направления спрайта. На рисунке изображены направления движения в Scratch.
Актуальное направление спрайта отражено в поле информации о нем. Также можете поставить галочку в чекбоксе напротив блока направление (в разделе Движение), чтобы увидеть направление на Сцене.
Вы можете повернуть спрайт к конкретной цели (курс) с помо- щью команды повернуть в направлении. Чтобы выбрать направление, кликните по указывающей вниз стрелке и выберите нужный вариант из выпадающего меню. Чтобы выбрать другое направление, вставьте нужное значение в белое редактируемое поле. Можно даже использовать отрицательные значения! (Например, если написать 45 или –315, спрайт в обоих случаях повернет на северо-восток.)
Теперь, когда вы знаете, как в Scratch работает направление, посмотрим на команды относительного движения (идти, изменить х на, изменить у на и повернуть). Начнем с команд идти и повернуть, которые работают с учетом актуального положения спрайта, как показано ниже
Оси координат, показанные на рисунке, были добавлены, чтобы помочь вам понять цифры, которые используются в скриптах. Вернитесь к этому рисунку, когда нужно будет освежить в памяти картину передвижения спрайта.
Собери деньги

Наша первая программа — простая игра, в которой пользователь дол- жен перемещать спрайт при помощи стрелок на клавиатуре, чтобы собрать максимальное количество мешков с золотом. Как показано ниже, мешки появляются в случайных точках координатной сетки. Если игрок не успевает схватить мешок за три секунды, тот перемещается в другое место.
Помогите коту схватить как можно больше мешков с золотом!
Начнем с написания скриптов для спрайта Игрок
Вы обратили внимание на то, что четыре скрипта, управляемых клавишами со стрелками, практически одинаковые? Позже вы узнаете, как избежать такого дублирования кода.
Протестируйте эту часть игры. У вас должно получаться передви- гать игрока по всей Сцене при помощи клавиш со стрелками. Если все работает, мы перейдем к спрайту Золото.

Как и спрайт Игрок, этот спрайт тоже начинает двигаться с момента нажатия на зеленый флажок. Он передвигает по Сцене мешок с золотом. Он также при помощи переменной под названием счет (которую необходимо создать в разделе Данные) отслеживает, сколько мешков было.
Давайте создадим скрипт для управления спрайтом Золото.

Нам нужно, чтобы мешок появлялся в одном из 48 квадратов сцены в случайном порядке. Как вы видели ранее, координата x мешка может быть такой: –210, –150, –90, ..., 210. Эти цифры расположены на расстоянии 60 шагов друг от друга, так что вы сможете вычислить координату x начиная с –210:

x = –210 + (0 × 60)
x = –210 + (1 × 60)
x = –210 + (2 × 60) x
= –210 + (3 × 60)

Похожее выражение применимо и к координате y.

Мы можем устанавливать координату x мешка, сгенерировав случайное число от 0 до 7, умножая его на 60 и прибавляя к результату −210. Рисунок ниже показывает детально алгоритм создания блока установить х в в нашем скрипте. Блок установить у в устроен похожим образом.
Появившись в случайном месте, мешок с золотом даст игроку три секунды на то, чтобы схватить его. (Вы можете изменить это время, сделав игру сложнее или проще.) Чтобы отслеживать время, скрипт первым делом обнуляет встроенный таймер. Затем он ждет, пока либо игрок схватит мешок, дотронувшись до него, либо выйдет время. Когда одно из этих условий выполняется, блок ждать до позволит скрипту перейти к блоку если. Подробное описание того, как создать блок ждать до, показано ниже
Блоки внутри блока если будут выполнены, только если условие, указанное вами, верно. Позже будет подробно объяснена работа этого блока, но пока вы достаточно знаете, чтобы использовать его и с его помощью добавлять в программу новые функции.
Если игрок дотронется до мешка, команда внутри блока если/то запустится. В этом случае блок играть звук издаст звук water drop, а блок изменить счет на 1 (из раздела Данные) добавит к счету одно очко.

Давайте соберем наш скрипт полностью и протестируем его!


Scratch - Учись играя!
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website