Проект “Пес и Попугай”
На этом уроке мы с вами познакомимся с внешним видом, анимацией персонажей и диалогами. Для этого мы будем использовать группу фиолетовых блоков [Внешний вид]:
В группе собраны блоки, управляющие костюмами персонажа и его фоновым окружением. Кроме этого, здесь можно изменять размеры костюмов, добавлять различные эффекты и перемещать персонажей на задний и передний планы. |
В программе мы будем использовать блоки:
Первым делом удалим спрайт [Кота]. Для этого нажмите правой кнопкой мыши на спрайт и выберите [удалить] [1]. Затем, добавьте новый спрайт, нажав на иконку [2]. В коллекции спрайтов выберите раздел [Животные] [3] и найдите там спрайт с названием [Dog2] [4].
Составим для [Пса] уже знакомый нам из прошлого урока алгоритм движения:
Уменьшите скорость движения пса, чтобы он не сильно утомился, бегая туда сюда 🙂
Подсказка: Нужно уменьшить количество шагов, которые он делает за один раз (вместо 10 поставить 2) .
Такое чувство что наш [Пёс] не ходит, а скользит по льду. Чтобы добавить реалистичности в его движениях, нужно добавить анимацию движения его лап.
Анимация – это быстрая смена картинок, которая даёт эффект движения персонажей. Нам нужны две почти одинаковые картинки пса: на первой впереди будет стоять правая лапа, а на второй – левая. Если эти две картинки будут сменяются достаточно быстро, то наш мозг воспринимает их не как две отдельные картинки пса с разным положением ног, а как одну картинку пса, у которого двигаются ноги.
Перейдём во вкладку [Костюмы]:
Слева мы видим три разных костюма [Пса]: [dog2-a], [dog2-b], [dog2-c]. Если выбирать то первый, то второй костюм, то мы видим как лапы [Пса] оживают – создается эффект движения лап собаки.
Третий костюм (где собака удивленно подносит лапу к пасти) для анимации движения ходьбы не нужен. Удаляем третий костюм.
Для этого нужно нажать на костюм правой клавишей мыши, а затем выбрать [Удалить]. |
Переключать вручную костюмы неудобно. Поэтому рассмотрим как это сделать при помощи блоков нашего кода.
Переходим снова во вкладку [Код]. Добавляем фиолетовый блок [Следующий костюм] из набора [Внешний вид] внутрь цикла [Всегда]:
Теперь наш [Пёс] так быстро перебирает лапами, что Супермен и Флеш могут ему только позавидовать. С такими темпами он сотрёт свои лапы до колен. Почему так происходит и как замедлить это движение?
Дело в том, что операции внутри цикла [Всегда] компьютер выполняет очень быстро. За одну секунду наш Пёс может пройти 2 шага, сменить костюм и снова идти 2 шага и сменить костюм СТО или ТЫСЯЧУ раз. Мы просто не успеваем уследить за такой скоростью смены кадров. Нашему мозгу для появления эффекта плавного движения достаточно передавать всего 15 смен картинок за 1 секунду.
Как избавиться от такой быстрой смены костюма? Нужно каждый раз после срабатывания блока Смена костюма подождать некоторое время.
В этом нам поможет блок [Ждать] в оранжевом наборе [Контроль]. Блок [Ждать] уже имеет параметр времени ожидания – [1 секунда]. Одна секунда – слишком большое время ожидания. Можно использовать значения меньшие чем одна секунда: 0.1 или 0.2 или 0.3 или 0.4 или 0.5 или 0.6 или 0.7 или 0.8 или 0.9.
Если вы ещё не изучали десятичные дроби в школе, то вам достаточно знать, что:
0.1 – это одна десятая часть секунды.
То есть:
0.1 секунды – это промежуток времени в десять раз меньший чем секунда;
0.2 секунды – это время два раза по 0,1;
0,3 – три раза по 0,1 и т.д.
Зададим значение 0.1 параметру блока [Ждать]:
Добавим ещё один спрайт – спрайт Попугая [Carrot]. Продублируем код [Пса] для нового спрайта. Сделать это можно несколькими способами. Можно просто перетащить выбранный скрипт на спрайт [Parrot] в область спрайтов. А можно нажать сочетание клавиш Ctrl+C (копировать) на выбранном коде [Пса], затем перейти в спрайт [Попугая] и вставить скопированный код в рабочую область скриптов Попугая нажав сочетание клавиш Ctrl+V (вставить).
Теперь у нас есть два спрайта с одинаковыми скриптами. При нажатии на [⚑] [Пес] должен перебирать ногами и ходить влево-вправо, а [Попугай] должен махать крыльями и летать влево-вправо. Скорость движения [Пса] и [Попугая] подберите самостоятельно.
Попугай у нас получился большим. Давайте уменьшим размер попугая. Для этого в панели [Спрайт] есть специальное поле [Размер]. Значение там вводятся в процентах, где 100% это размер в натуральную величину, а 50% это половина размера. Поставим в поле [Размер] спрайта [Parrot] число 40:
Также можно изменить размер спрайта при помощи программного кода. В фиолетовых блоках [Внешний вид] находится блок [Установить размер 100%]. Перетащите этот блок в скрипт [Пса] и измените цифру 100 в параметре блока на 40. Теперь как бы мы не изменяли размер [Пса] вручную в панели [Спрайт], все равно после нажатия на кнопку [⚑] размер сбросится до 40%.
Теперь, давайте добавим фон для наших персонажей. Кнопка [Выбрать фон] находится в правом нижнем углу:
Я выбрал фон [Boardwalk]:
Добавим в нашу программу немного интерактива (т.е. взаимодействие пользователя с программой).
Нам необходимо решить следующие задания:
- По нажатию на [Попугая] он начинает говорить “Привет!”.
- По нажатию на [Пса] он начинает издавать звук “Гав” и думать “М-м-м…какой вкусный попугай”.
- По нажатию на клавишу “пробел” фон меняется на следующий.
- При нажатии на клавишу “стрелка вверх” [Попугай] увеличивает размер на 10%, при нажатии на клавишу “стрелка вниз” уменьшается в размерах на 10%.
- При нажатии на клавишу “стрелка влево” [Пёс] уменьшается, при нажатии на клавишу “стрелка вправо” – увеличивается.
Попробуйте сделать все задания (или несколько) самостоятельно. Если не получится, то можете подсмотреть в решении. Дерзайте!
Подсказка: необходимые блоки ищите в [События], [Внешний вид] и [Звук].
Задания для самостоятельного выполнения
Задание 1
Доделать программу аквариум. Добавить в нее [Акулу] с двумя костюмами (открытый и закрытый рот). Добавить анимацию [Акуле].
Задание 2
Добавить собственные мысли нашим обитателям аквариума. Мысли станут видны при нажатии на персонажа.
Задание 3
Сделать так, чтобы при нажатии на клавишу [Пробел] появлялась [Акула], а рыбки думали тревожные мысли. А при нажатии на клавишу [Стрелка вверх], [Акула] исчезала и рыбки вздыхали с облегчением.