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. Как ограничить скорострельность?

Что дальше

Дальше Ссылка
Платформер Scratch — продвинутый платформер
Случайность Scratch §8
Lab — клоны дождь и салют