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

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. Как отличить скрипт «для клона» от скрипта основного спрайта?

Что дальше

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

См. также

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