Перейти к основному содержимому

Scratch — баскетбол и гравитация

Начальный уровень
Связь с другими главами

Переменные — §7; хитбокс — §19; платформер с той же гравитацией — 32.


Эскиз

Кот прыгает (стрелки + пробел), мяч летит по дуге в кольцо. Счёт растёт при попадании. Кольцо может слегка двигаться — усложнение.

ЧастьФункция
АГравитация и приземление на «землю»
БХодьба влево/вправо
ВКольцо и невидимый хитбокс
ГМяч, бросок, счёт

Часть А — гравитация

Переменные для кота: скорость_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) сек.
конец

Спрайт Земля — зелёная полоса внизу сцены. Тот же приём — в 32 — платформер.

Контрольная точка: кот падает и останавливается на земле; пробел подбрасывает.


Часть Б — ходьба

Параллельный скрипт у кота:

[Когда 🟢 нажат]
повторять всегда
если <нажата клавиша [стрелка вправо]?> то
изменить x на (5)
конец
если <нажата клавиша [стрелка влево]?> то
изменить x на (-5)
конец
ждать (0.02) сек.
конец

Часть В — кольцо и хитбокс

  1. Спрайт Кольцо — картинка обода.
  2. Спрайт Хитбокспрозрачный прямоугольник чуть меньше отверстия; закрепите его по центру кольца.
  3. При броске проверяйте касается [Хитбокс], а не весь спрайт кольца — так попадание честнее.

Подробнее про приём — §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 — сравнить с вашей версией.

Вопросы для самопроверки

  1. Зачем две переменные скорость_y и на_земле?
  2. Почему хитбокс делают отдельным спрайтом?
  3. Что произойдёт, если убрать ждать из цикла гравитации?

Что дальше

ДальшеСсылка
Клоны и арканоид36
Клоны в справочникеScratch §9

См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").