Весёлая ферма
Фон для игры мы не будем брать из библиотеки, а полностью нарисуем сами.
В графическом редакторе выбери инструмент "Прямоугольник" и настрой цвет с параметрами: Цвет 35, Насыщенность 75, Яркость 53. Получится тёмно-зеленый цвет.
После этого изобразим прямоугольник размером во всю рабочую область экрана.
Научимся рисовать озеро.
Для рисования озера воспользуемся инструментом "Круг"
Обрати внимание, что озеро получилось с чёрным контуром. Этот контур можно удалить, изменив значение в окошке "Контур" на 0. Для этого озеро должно быть сначала выбрано!
Теперь научимся изменять форму озера
Теперь на нашем озере появились точки привязки, потянув за которые можно изменить форму озера.
Поэкспериментируй с точками привязки и получи желаемую форму озера.
Теперь нарисуем забор. Выбери для него подходящий цвет и нарисуй верхнюю горизонтальную доску.
Аналогичным образом нарисуем два камня на фоне. Потренируйся создавать различные формы в редакторе изображений.
Поскольку нижняя доска точно такая же, как и верхняя, нет необходимости рисовать её заново. Мы можем воспользоваться инструментом копирования.
При нажатии на неё скопированный элемент из буфера обмена будет вставлен рядом с первым. Теперь его можно переместить мышью на нужное место.
После нажатия на кнопку "Копировать" кнопка "Вставить" станет активной.
Главным персонажем нашей игры будет цыплёнок, которого мы будем кормить. Спрайт можно найти в библиотеке спрайтов.
Для игры нам понадобится ещё один спрайт - крошки, которые будет клевать цыпленок. Их мы нарисуем в графическом редакторе.
Поскольку крошки должны быть небольшого размера, для удобства их рисования мы можем увеличить масштаб при рисовании, то есть приблизить изображение. Для этого достаточно нажать на увеличительное стекло с плюсиком справа от области рисования. Чтобы уменьшить масштаб, нужно нажать увеличительное стекло с минусом. Чтобы вернуться к исходному масштабу, достаточно нажать значок "равно".
Теперь нарисуем несколько кругов так, чтобы было похоже на крошки хлеба.
Цель нашей игры: вырастить цыплёнка. Поэтому в самом начале он должен быть небольшого размера. Зададим ему стартовую точку и установим размер с помощью соответствующей команды.
Для управления цыплёнком будем использовать один из самых простых способов управления игровым персонажем: следование за курсором мыши. Поместим эти команды внутрь бесконечного цикла.
Запусти программу и понаблюдай, как цыпленок движется за указателем мыши.
Сейчас в программе присутствуют две проблемы:
- Цыплёнок при движении может переворачиваться вверх ногами.
- Если он приближается к курсору мыши, то наблюдается эффект, как будто он дрожит возле него.
У второй проблемы немного более сложное решение. Добавим дополнительное условие на движение цыплёнка. Он будет двигаться, только если не касается указателя мыши. В команду "Если..." необходимо поместить сначала команду "НЕ" из блока команд "Операторы", а затем в эту команду поместить проверку на касание указателя мыши.
Первую проблему можно исправить, добавив в начало программы команду из блока "Движение", задающую способ вращения спрайта.
Теперь при касании указателя мыши цыплёнок будет просто останавливаться.
Запусти программу и попробуй подвести цыплёнка к крошкам. Он начинает расти! Чтобы увидеть, чему равен его размер, мы можем вывести значение переменной на экран. Для этого в блоке команд "Внешний вид" необходимо поставить галочку возле окошка "Размер".
Создадим цыплёнку ещё одну программу, по которой он будет вырастать. Это будет параллельный цикл.
Теперь на сцене появилась строка, которая называется монитором переменной. Она отображает текущий размер спрайта "Цыплёнок".
Способ отображения можно поменять двойным кликом по этой строке. Иногда удобнее, чтобы отображалось только число.
Если запустить программу сейчас и понаблюдать за ростом цыплёнка, то можно заметить, что он вырастает очень быстро.
Теперь рост цыплёнка происходит не так быстро и играть будет интересней.
Поэтому в программу его роста необходимо добавить задержку.
Мы можем ещё улучшить программу, добавив эффект анимации при клевании зерна. У нашего цыплёнка целых три костюма. Воспользуемся ими в нашей программе. Обычную задержку по времени в одну секунду мы заменим циклом с повторениями.
Таким образом мы добились эффекта, как будто цыплёнок наклоняется и клюёт зерна.
Внимательно понаблюдай за этим процессом. Ты заметил, что это происходит очень медленно? Один вложенный цикл требует целых трёх секунд на выполнение. За это время цыплёнок увеличивается всего лишь на один процент! Изменим это, введя в команду "Ждать" небольшое число.
Поскольку сейчас крошки находятся в одном и том же месте экрана, играть в игру не очень интересно. Сделаем для них программу, чтобы они постоянно перемещались в случайное место экрана.
Теперь играть стало намного интереснее: у игрока есть всего несколько секунд, чтобы успеть переместить цыплёнка в нужную точку экрана.
Нам осталось сделать завершение игры при достижении определённого размера цыплёнка. Для этого в параллельной программе у цыплёнка создадим вот такой скрипт:
Разберёмся, как работает этот скрипт. В нём мы используем новую команду "Ждать до..." Обрати внимание, что команды "Ждать" И "Ждать до" - это разные команды!
В блок "Ждать до..." сначала необходимо поместить оператор сравнения из блока команд "Операторы". В этом блоке сравнения мы сравниваем значение переменной "размер" с числом 100.
Если это условие выполняется (программисты говорят: становится истинным), программа выполняется дальше.
Выращивать всего одного цыплёнка не очень интересно. Мы можем увеличить их количество простым копированием уже созданного спрайта. При этом скопируется и его программа. Но перед копированием немного изменим условие завершения игры. Найди в своей программе показанный на слайде скрипт и измени его.
Теперь когда цыплёнок вырастет до размера 100% игра не остановится, а мы просто потеряем возможность управления им. Запусти игру и убедись, что происходит именно так.
Если ты внимательно тестировал программу, то заметил, что в цыплёнок может вырасти до размера 101 %.
То есть уже после того, как он говорит фразу "Ура! Я вырос!" увеличение цыплёнка происходит ещё один раз. Получается так потому, что на произнесение этой фразы тратится 2 секунды, за которые цыплёнок успевает склевать зёрна ещё раз. Исправить это можно, поменяв порядок следования команд местами:
Теперь сначала пропадёт возможность управления цыплёнком, а потом он скажет свою фразу.
Сейчас в игре присутствует ещё один баг, который довольно сложно увидеть с первого взгляда. И проявляться он может не при каждом запуске игры. Давай внимательно посмотрим на все скрипты цыпленка, созданные на этот момент.
Может получиться так, что при запуске игры команда "Ждать до..." выполнится раньше, чем установка начального размера. Игра закончится, даже не начавшись. В этом заключается опасность использования параллельных программ. Всегда нужно понимать, в каком порядке нам требуется выполнение различных задач. Это довольно сложная область в программировании. Подробнее с этим мы будем разбираться позже.
А сейчас для исправления бага просто добавим небольшую задержку в последний скрипт.
Теперь мы готовы к копированию нашего цыплёнка. Здесь всё просто: правой кнопкой мыши нажми на спрайт и выбери пункт "Дублировать". Появится точно такой же цыплёнок с точно такой же программой.
Эту процедуру можно повторить ещё несколько раз. Таким образом можно получить целую ферму цыплят!
Поскольку программа у всех цыплят одинаковая, они будут управляться таким же способом, как и первый - следовать за курсором мыши. Однако если мы запустим программу сейчас, то увидим всего одного цыплёнка, как и прежде. Где же остальные?
На самом деле все цыплята сейчас находят один под другим, в несколько слоёв. Убедиться в этом можно, попробовав растащить их мышкой прямо при запущенной программе (только если окно программы не развёрнуто на весь экран!)
Чтобы каждый раз не растаскивать цыплят мышкой, необходимо изменить программу каждого цыпленка: вместо перехода в стартовую точку установить команду перехода в случайную точку экрана при старте программы.
Запусти игру и попробуй покормить всех своих цыплят. Заметь, что рано или поздно они всё равно как будто "слипаются" все вместе
Исправить это можно добавив возможность разогнать цыплят, например, по клавише "пробел".
Каждому цыплёнку добавь этот скрипт
Теперь мы можем вывести значение размера для каждого цыпленка. Для этого в каждом спрайте зайди в блок команд "Внешний вид" и поставь галочку возле переменной "размер". На экране отобразятся все значения
Однако теперь эти строки закрывают большую часть экрана. Мы можем поменять способ отображения значений двойным кликом мышки по строке. Сделай так для каждого значения. Теперь играть гораздо удобнее. Можно наблюдать за ростом каждого цыплёнка в реальном времени.

Презентация на тему:"Весёлая ферма" (3.44 MB)

