Scratch — арканоид с клонами

Начальный уровень

Теория клонов

Перед сборкой прочитайте §9 Клоны в справочнике Scratch.


Эскиз

Ракетка внизу ловит мяч. Кирпичики вверху — каждый клон; при ударе исчезает. Проигрыш, если мяч упал ниже ракетки; победа, когда кирпичей не осталось.

Часть Функция
А Ракетка по стрелкам
Б Мяч и отскок от стен
В Отскок от ракетки (угол зависит от места удара)
Г Клоны кирпичей
Д Сообщения "игра окончена" / "вы выиграли"

Часть А — ракетка

[Когда 🟢 нажат]
показаться
перейти в x: (0) y: (-150)

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

Часть Б — мяч

[Когда 🟢 нажат]
перейти в x: (0) y: (0)
установить [dx v] в (4)
установить [dy v] в (4)

повторять всегда
  изменить x на (dx)
  изменить y на (dy)
  если <касается края?> то
    отскочить от края
    установить [dx v] в (dx)
    установить [dy v] в (-1) * (dy)
  конец
  ждать (0.02) сек.
конец

Уточните отражение по осям под свой скрипт (иногда проще менять знак dx при abs x > 230).


Часть В — удар о ракетку

если <касается [Ракетка v]?> то
  установить [dy v] в (abs (dy))
  установить [dx v] в ((dx) + ((x) - (x позиция [Ракетка v])) / 10)
конец

Так мяч летит в сторону, куда ударили по ракетке.


Часть Г — кирпичи-клоны

У спрайта Кирпичик один костюм. При старте:

[Когда 🟢 нажат]
скрыть
повторить (5)
  повторить (10)
    создать клон самого себя
    изменить x на (44)
  конец
  изменить x на (-440)
  изменить y на (-32)
конец

У клона:

[Когда я начинаю как клон]
показаться
перейти в x: (x позиция [Кирпичик v]) y: (y позиция [Кирпичик v])

повторять всегда
  если <касается [Мяч v]?> то
    удалить клон
  конец
  ждать (0.02) сек.
конец

Родительский спрайт остаётся скрытым; на сцене только клоны.

Контрольная точка: сетка кирпичей; при ударе кирпич пропадает.


Часть Д — конец игры

  • Переменная кирпичей = число клонов при старте; при удалить клон уменьшайте счётчик; при 0 — отправить [победа].
  • Если y < (-170) у мяча — отправить [проигрыш].
  • Спрайты с текстом показываются по когда получено [победа].

Версия 2.0 (после базы)

Улучшение Блоки
Музыка запустить звук в цикле
Хвост мяча Перо, опустить перо у мяча
Анимация кирпича изменить эффект [прозрачность] перед удалить клон

Демосцена и эффекты — 32 § демосцена.


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

  1. Зачем родительский кирпич скрыт?
  2. Что будет, если забыть удалить клон?
  3. Как отличить скрипт "для клона" от скрипта основного спрайта?

Что дальше

Дальше Ссылка
Космический шутер Scratch — астероиды в космосе — астероиды
Аркады в теории 2-video-games/16
Lab — отскок мяча пинг-понг