Scratch — баскетбол и гравитация
Начальный уровень
Эскиз
Кот прыгает (стрелки + пробел), мяч летит по дуге в кольцо. Счёт растёт при попадании. Кольцо может слегка двигаться — усложнение.
| Часть | Функция |
|---|---|
| А | Гравитация и приземление на "землю" |
| Б | Ходьба влево/вправо |
| В | Кольцо и невидимый хитбокс |
| Г | Мяч, бросок, счёт |
Часть А — гравитация
Переменные для кота: скорость_y, на_земле (для всех спрайтов или только для кота).
[Когда 🟢 нажат]
установить [скорость_y v] в (0)
установить [на_земле v] в (истина)
повторять всегда
если <нажата клавиша [пробел] и <(на_земле) = [истина]>> то
установить [скорость_y v] в (14)
установить [на_земле v] в (ложь)
конец
изменить [скорость_y v] на (-1)
изменить y на (скорость_y)
если <касается [Земля v] или y < (-140)> то
установить [скорость_y v] в (0)
установить [на_земле v] в (истина)
установить y в (-140)
конец
ждать (0.02) сек.
конец
Спрайт Земля — зелёная полоса внизу сцены. Тот же приём — в Scratch: платформер и демосцена — платформер.
Контрольная точка: кот падает и останавливается на земле; пробел подбрасывает.
Часть Б — ходьба
Параллельный скрипт у кота:
[Когда 🟢 нажат]
повторять всегда
если <нажата клавиша [стрелка вправо]?> то
изменить x на (5)
конец
если <нажата клавиша [стрелка влево]?> то
изменить x на (-5)
конец
ждать (0.02) сек.
конец
Часть В — кольцо и хитбокс
- Спрайт
Кольцо— картинка обода. - Спрайт
Хитбокс— прозрачный прямоугольник чуть меньше отверстия; закрепите его по центру кольца. - При броске проверяйте
касается [Хитбокс], а не весь спрайт кольца — так попадание честнее.
Подробнее про приём — §19 хитбокс.
Часть Г — мяч и счёт
Спрайт Мяч. При нажатии, например, x:
[Когда нажата клавиша [x v]]
перейти к [Кот v]
показаться
повторять пока не <касается [Хитбокс v]?>
изменить y на (скорость_мяча_y)
изменить x на (скорость_мяча_x)
изменить [скорость_мяча_y v] на (-0.5)
ждать (0.02) сек.
конец
изменить [счёт v] на (1)
воспроизвести звук [попадание v]
спрятаться
Старт мяча у кота, начальные скорость_мяча_x и скорость_мяча_y подберите опытным путём.
Если счёт растёт при каждом кадре касания, добавьте флаг уже_засчитано или спрячьте мяч сразу после первого попадания — иначе +10 очков за один бросок.
Контрольная точка: один бросок — одно очко; мяч исчезает или возвращается к коту.
Дополнительно
- Кольцо слегка двигается влево-вправо (
изменить xвповторять всегда). - Чит: клавиша останавливает кольцо на 3 секунды.
- Remix Gravity Example — сравнить с вашей версией.
Вопросы для самопроверки
- Зачем две переменные
скорость_yина_земле? - Почему хитбокс делают отдельным спрайтом?
- Что произойдёт, если убрать
ждатьиз цикла гравитации?
Что дальше
| Дальше | Ссылка |
|---|---|
| Клоны и арканоид | Scratch — арканоид с клонами |
| Клоны в справочнике | Scratch §9 |
| Lab — гравитация | прыжок и падение |