Шаг 1. Создаем переменную «Сила притяжения». Для начала выберем персонажа.
В качестве примера можно использовать стандартного кота Scratch.
Теперь создадим переменную:
- Откройте раздел «Переменные».
- Нажмите «Создать переменную».
- Назовите ее «Сила притяжения».
- В начале игры установите ее значение равным 0.
Для запуска алгоритма используем блок:
«Когда флаг нажат»После него добавляем:
«Задать сила притяжения значение 0»Теперь переменная готова к работе.
Шаг 2. Добавляем падение персонажа. Следующая задача — заставить персонажа постоянно двигаться вниз.
Для этого используем цикл:
«Повторять всегда»Внутри цикла разместим две команды:
- изменить «Сила притяжения» на -1;
- изменить Y на «Сила притяжения».
Получается следующая последовательность:
Когда флаг нажат Задать «Сила притяжения» значение 0 Повторять всегда Изменить «Сила притяжения» на -1 Изменить Y на «Сила притяжения»
Почему используется значение
-1?
В Scratch координата Y уменьшается, когда объект движется вниз. Поэтому отрицательное значение переменной заставляет персонажа опускаться.
При каждом повторении цикла сила притяжения становится меньше:
0 → -1 → -2 → -3 → -4...Одновременно меняется координата Y. Поэтому персонаж не просто движется вниз с постоянной скоростью, а постепенно ускоряет падение.
Шаг 3. Создаем поверхность. Если сейчас запустить проект, персонаж просто упадет за пределы сцены. Чтобы этого не происходило, добавим землю.
Создайте на сцене поверхность определенного цвета. Например, можно нарисовать зеленую полосу в нижней части игрового поля.
Теперь нам необходимо объяснить Scratch, что при соприкосновении с этой поверхностью персонаж должен остановиться.
Шаг 4. Останавливаем персонажа на земле. Для проверки соприкосновения используем условие:
«Если — то»Внутрь условия добавим блок:
«касается цвета?»Здесь важно выбрать именно тот цвет, которым нарисована поверхность.
Внутри условия зададим изменение силы притяжения:
«Задать сила притяжения значение 1»В итоге логика будет выглядеть примерно так:
Повторять всегда Изменить «Сила притяжения» на -1 Изменить Y на «Сила притяжения» Если касается цвета земли, то Задать «Сила притяжения» значение 1
Теперь снова запустите проект.
Если все сделано правильно, персонаж упадет вниз, коснется поверхности и остановится на уровне земли.
Почему персонаж останавливается?
Пока кот находится в воздухе, сила притяжения постепенно увеличивается по модулю в отрицательную сторону, поэтому он движется вниз.
Когда персонаж касается земли, срабатывает условие и значение переменной меняется. Благодаря этому падение прекращается.
Если персонаж продолжает проваливаться сквозь землю, прежде всего проверьте цвет в блоке «касается цвета?». Он должен точно соответствовать цвету поверхности.
Шаг 5. Настраиваем прыжок. Теперь добавим еще одну важную игровую механику — прыжок.
Создадим отдельный блок «Прыжок». Чтобы персонаж смог подняться вверх, нужно изменить значение силы притяжения на положительное.
Для запуска прыжка будем использовать клавишу пробел.
Добавляем условие:
«Если клавиша пробела нажата, то»Внутри него задаем:
«Изменить сила притяжения на 20»Положительное значение заставит персонажа двигаться вверх.
Логика прыжка:
Если клавиша «пробел» нажата, то Изменить «Сила притяжения» на 20
При этом прыжок должен работать, когда персонаж находится на поверхности. Поэтому блок необходимо расположить в соответствующей части алгоритма.
Запустите проект и нажмите пробел.
Теперь персонаж должен подпрыгивать вверх, а затем снова опускаться вниз под действием созданной нами гравитации.