https://github.com/CodeClub/scratch-curriculum/tree/master/ru-RU/Term%201/Fireworks
В этом проекте мы создадим фейерверк над городом
Давайте импортируем разные картинки для игры
Создайте новый проект Скретча. Удалите кота, нажав на него правой кнопкой мыши и выбрав "Удалить"
Замените фон, выбрав на открытом воздухе/city-with-water
Нажмите на кнопку Загрузить спрайт из файла {.blockgrey}, чтобы добавить спрайт ракеты в проект (используйте картинкуResources/Rocket.png)..
Сделайте, чтобы ракета скрывалась, когда нажат зеленый флаг.
Теперь мы хотим, чтобы ракета двигалась к мышке, когда щелкнут кнопкой мышки.
Добавьте блок "когда клавиша пробел нажата", и под ним сделайте ракету появляющимся и летящей в сторону мыши
когда щелкнут по ФЛАГУ
скрыть
когда клавиша [пробел] нажата
показать
плыть (1) секунд в точку x: (мышка по x) y: (мышка по y)
Нажмите зеленый флаг, поместите мышку над сценой и нажмите пробел.
Ракета появляется и летит в сторону мышки? Что происходит, если вы сдвинете мышку и нажмете пробел еще раз
Фейерверк не должен летать от края экрана до края, так что давайте убедимся, что он всегда летит в сторону мышки от низа экрана. Прежде чем мы покажем ракету, используйте блок "перейти в", укажите передвинуться ниже нижнего края экрана, но оставаться в том же месте по горизонтали.
когда щелкнут по ФЛАГУ
скрыть
когда клавиша [пробел] нажата
перейти в x: (мышка по x) y: (-200)
показать
плыть (1) секунд в точку x: (мышка по x) y: (мышка по y)
Нажмите зеленый флаг, поместите мышку над сценой и нажмите пробел. Ракета летит в сторону мышки от низа экрана? Что происходит, если вы сдвинете мышку и нажмете пробел еще раз
Наконец, давайте сделаем эти действия, используя кнопку мыши вместо пробела. Чтобы сделать это, мы можем обернуть наш скрипт в всегда если мышка нажата. Затем, замените блок когда клавиша пробел нажата для блока когда флаг нажат, и последнее, но не менее важное, убедитесь, что ракета скрыта, когда всё начинается.
когда щелкнут по ФЛАГУ
скрыть
всегда
if <мышка нажата?> then
перейти в x: (мышка по x) y: (-200)
показать
плыть (1) секунд в точку x: (мышка по x) y: (мышка по y)
Нажмите зеленый флаг, поместите мышку над сценой и нажмите кнопку мыши. Нажмите снова на соседней точке.
Попробуйте сделать некоторые ракеты медленнее или быстрее, чем остальные.
Попробуйте изменить точку, где ракета начинает движение в сторону мышки, чтобы сделать небольшой угол
Первый шаг, чтобы сделать взрыв ракеты, это сделать ёё издающей звук взрыва Resources/bang.wav, прежде, чем она начнет двигаться, и затем скрывать себя, когда она дойдет до мышки Чтобы импортировать звук, перейдите на закладку "Звуки" и нажмите кнопку Загрузить звук из файла {.blockgrey}
когда щелкнут по ФЛАГУ
скрыть
всегда
if <мышка нажата?> then
перейти в x: (мышка по x) y: (-200)
играть звук [bang]
показать
плыть (1) секунд в точку x: (мышка по x) y: (мышка по y)
скрыть
Затем, сделайте, чтобы ракета передавала новое сообщение, когда она взрывается Мы будем отслеживать это сообщение позже
когда щелкнут по ФЛАГУ
скрыть
всегда
if <мышка нажата?> then
перейти в x: (мышка по x) y: (-200)
играть звук [bang]
показать
плыть (1) секунд в точку x: (мышка по x) y: (мышка по y)
скрыть
передать [взрыв v]
Нажмите зеленый флаг. Удостоверьтесь, что ракеты издает звук и скрывается, когда она достигает мышки
Создайте новый скрипт из файла, Resources/firework1.png
Когда спрайт получает сообщение "взрыв", он должен скрыть себя, и затем переместится на позицию ракеты, используя блок "перейти в", показать себя, и затем исчезнуть секунду спустя.
когда я получу [взрыв]
скрыть
перейти в [rocket v]
показать
ждать (1) секунд
скрыть
Запустите еще одну ракету в полет. Заменяет ли она графику взрыва, когда взрывается сама Что случается, когда вы держите кнопку мыши нажатой и двигаете мышку? (Не волнуйтесь, мы поправим это потом).
Теперь мы можем сделать каждый взрыв еще более уникальным, используя блок установить эффект {.blockpurple}, и выбрав произвольный цвет между 1 и 200, прежде чем показывать его.
когда я получу [взрыв]
скрыть
установить эффект [цвет v] в значение (выдать случайное число от (1) до (200))
перейти в [rocket v]
показать
ждать (1) секунд
скрыть
Нажмите на зеленый флаг.
Имеет ли каждый взрыв различный цвет?
Давайте добавим некоторое число различных видов взрывов, используя файлы Resources/firework2.png и Resources/firework3.png, и переключаясь между ними для каждой ракеты, прежде чем показывать взрыв..
Нажмите на зеленый флаг.
Имеет ли каждая ракета различную графику взрывов?
Наконец, давайте сделаем взрывы, увеличивающиеся после разрыва ракеты! Вместо того, чтобы ждать секунду, установите размер спрайта в 5% прежде чем показывать его, и затем, как только он покажется, увеличивайте размер на 2 каждые 50 раз, используя блок повторить {.blockorange}.
когда я получу [взрыв]
скрыть
установить эффект [цвет v] в значение (выдать случайное число от (1) до (200))
перейти в [rocket v]
показать
установить размер (5) %
повторять (50)
изменить размер на (2)
конец
скрыть
Нажмите на зеленый флаг.
Начинает ли графика взрыва распространятся от центра ракеты и медленно растет со временем?
Почему бы не попробовать сделать каждый взрыв еще более уникальным, изменяя размер и скорость роста взрыва?
Помните, ранее мы видели ошибку (баг), когда мы держали кнопку мыши нажатой? Это происходит, так как когда ракета передает сообщение о взрыве, она немедленно повторяет цикл и перемещает ракету к низу сцены. Это случается прежде чем взрыв переместится на позицию ракеты.
Чтобы исправить это, мы можем заменить блок "передать" на блок "передать и ждать". Таким образом, цикл не будет повторятся, пока взрыв не расширится до конца.
когда щелкнут по ФЛАГУ
скрыть
всегда
if <мышка нажата?> then
перейти в x: (мышка по x) y: (-200)
играть звук [bang]
показать
плыть (1) секунд в точку x: (мышка по x) y: (мышка по y)
скрыть
передать [взрыв v] и ждать
Нажмите зеленый флаг, удерживайте кнопку мыши нажатой и перемещайте мышку по сцене.
Появляется ли графика взрыва в нужном месте и в нужное время?
Отлично, вы закончили, теперь можете насладиться игрой! Не забудьте поделиться вашей игрой с друзьями и семьей, нажав кнопку Поделиться в верхнем правом углу!