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

Scratch — астероиды в космосе

Начальный уровень
Контекст

Классическая игра Asteroids и «тор» экрана — в главе про аркады. Клоны — §9.


Эскиз

Космолет поворачивается к мыши, пробел стреляет. Астероиды летают; при попадании крупный делится на мелкие. Счёт и таймер; столкновение с астероидом — взрыв.

ЧастьФункция
АДвижение корабля, выход за край
БПрицеливание мышью, выстрел
ВКлоны астероидов
ГДеление при попадании
ДСчёт и таймер

Часть А — корабль и wrap-экран

[Когда 🟢 нажат]
повторять всегда
повернуться к [указатель мыши v]
если <нажата клавиша [стрелка вверх]?> то
двигаться (4) шагов
конец
если <x > (240)> то
установить x в (-240)
конец
если <x < (-240)> то
установить x в (240)
конец
если <y > (180)> то
установить y в (-180)
конец
если <y < (-180)> то
установить y в (180)
конец
ждать (0.02) сек.
конец

Ушли за правый край — появились слева: так устроен «космос без стен».


Часть Б — выстрел

Спрайт Лазер или Снаряд:

[Когда нажата клавиша [пробел v]]
создать клон самого себя

У клона:

[Когда я начинаю как клон]
показаться
перейти к [Космолет v]
повторять (40)
двигаться (12) шагов
если <касается [Астероид v]?> то
отправить [попадание v]
удалить клон
конец
конец
удалить клон

Ограничьте число выстрелов переменной боезапас — удобное усложнение для расширенной версии игры.


Часть В — астероиды

При старте игры:

[Когда 🟢 нажат]
повторить (4)
создать клон [Астероид v]
конец

У клона астероида — случайная позиция, повернуться в случайном направлении, вечный двигаться + wrap, как у корабля.


Часть Г — деление

При когда получено [попадание] у астероида (или в скрипте снаряда):

если <(размер) = [большой]> то
создать клон [Астероид v]
создать клон [Астероид v]
установить костюм [маленький v]
конец
удалить клон
изменить [счёт v] на (1)

Два маленьких клона разлетелись — классическое правило Asteroids.


Часть Д — таймер и взрыв

  • Таймер Scratch: запустить таймер, в повторять всегда проверять таймер > 60 → конец раунда.
  • Спрайт Взрыв: при касании корабля астероидом — включить костюм анимации, остановить всё, сказать счёт.

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

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

Что дальше

ДальшеСсылка
Платформер38
СлучайностьScratch §8

См. также

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