https://github.com/CodeClub/scratch-curriculum/tree/master/ru-RU/Term%201/Fruit%20Machine
Введение: Это игра, в которой есть три спрайта, меняющие костюмы. Вы должны остановить их, когда они показывают одну и ту же картинку одновременно(как в игровом автомате!).
Давайте импортируем разные картинки для нашей игры
Создайте новый Скретч проект. Удалите кота, нажав правой кнопкой мышки и кликнув Удалить
Добавьте новый спрайт из библиотеки.
Выберите изображение из любой папки. Обычно мы используем яблоки, но вы можете использовать любое изображение, которое хотите.
Нажмите на вкладке Костюмы и импортируйте ещё две вещи, чтобы в итоге было три. (мы используем бананы и груши, но вы можете использовать любые другие изображения).
Теперь у нас есть несколько костюмов. Мы хотим, чтобы спрайты меняли их по очереди.
Нажмите на вкладке Скрипты.
Нажмите раздел контроль и перетащите когда щелкнут по зеленому флагу в область для скриптов. Это будет работать, когда мы кликаем зеленый флаг.
Добавьте всегда и перенесите это ниже остальных конструкций.
Нажмите по зеленому флагу вверху справа. Посмотрите на тот белый контур вокруг нашего скрипта. Это работает, потому что мы нажали зеленый флаг, который запускает это.
Теперь нажмите Костюмы и перетащите следующий костюм
Как нам замедлить так, чтобы всё не изменялось слишком быстро? Нажмите Контроль и перетащите в ждать 1 сек.
Установите время до тех пор, пока это повторяется в быстром темпе (0.1 сек подойдет). Что произойдет, если мы бы не поставили блок ждать?
когда зеленый флаг нажат
всегда следующий костюм ждать 0.1 сек (завершить всегда)
Нажмите зеленый флаг. Меняются ли костюмы вовремя?
Сохраните ваш проект
Установите время в блоке ждать. Как вы думаете, какие цифры помогут сделать игру легче или труднее?
Отлично! Мы можем сделать так, чтобы спрайт менял костюмы постоянно, но как сделать так, чтобы всё останавливалось, когда мы кликаем мышкой?
Добавьте реакцию на клик мышкой, нажав События и перетащив Когда спрайт нажат на свободное место
Отправьте сообщение об остановке, перетащив Передать сообщение1. Измените сообщение1 на новое сообщение, например Клик
Перетащите Когда я получу Клик
Из раздела Управление перетащите Стоп другие скрипты спрайта
когда спрайт нажат
передать Клик
когда я получу Клик
стоп другие скрипты спрайта
Нажмите зеленый флаг, немного подождите, затем нажмите на спрайте.
Меняется ли костюм перед тем, как вы нажимаете на нем? Останавливается ли он, когда вы нажимаете на нем? Запустите снова. Останавливается ли он, когда вы наводите мышку на него, без нажатия по нему? Останавливается ли спрайт, когда вы нажимаете где-нибудь ещё на Сцене? Где-нибудь ещё в окне Скретча? Где-нибудь снаружи, вне окна Скретча?
Сохраните ваш проект
Теперь нам понадобится сделать несколько спрайтов, чтобы мы смогли играть в нашу игру!
Копируйте спрайт (Спрайт1) нажатием правой кнопки мыши в левом нижнем углу.
Копируйте его снова, чтобы было 3 спрайта на экране.
Переместите каждый спрайт, чтобы они были в одном ряду. Сделайте их немного поменьше если это нужно.
Нажмите по зеленому флагу.Все спрайты должны измениться. Попробуйте остановить их всех на одной и той же картинке!
Сохраните ваш проект
Когда вы запустите сразу после того, как вы загрузили её, все спрайты покажутся в одном и том же костюме и будут изменяться одновременно. Как на счет того, чтобы вы сделали так, чтобы спрайты изменялись в случайном порядке, когда зеленый флаг нажат? Подсказка: попробуйте выбрать случайный костюм для каждого спрайта, когда игра начнется.
Отличная работа, вы закончили создавать основную часть игры. Есть ещё несколько вещей, которым вы можете сделать для вашей игры. Попробуйте!
Измените как-нибудь сложность игры. Например, просто сделайте так, чтобы костюмы изменялись быстрее. Попробуйте и сделайте что-то более изобразительное. Некоторые идеи, которые можно попробобвать сделать:
Измение число костюмов, которое имеет каждый спрайт.
Сделайте несколько уникальных костюмов для спрайтов.
Добейтесь того, чтобы костюмы сменялись несколько раз.
Сделайте так, чтобы для каждого спрайта выбирался случайный костюм.
Наслаждайтесь новыми изменениями в вашей игре!
Каждый раз, когда вы делаете какое-то изменение, подумайте о том, делает ли это игру легче или труднее. Игра слишком легкая или слишком сложная? Как вы можете установить сложность, чтобы это было правильно?
Разные люди имеют различные навыки игры. Как можно подобрать сложность в зависимости от игрока?
Один из способов это установить скорость смены костюмов. Вы можете использовать переменную, которая называется delay(задержка),чтобы задать продолжительность каждого блока ждать для спрайта. Если игрок выигрывает раунд, задержка может быть немного уменьшена (чтобы сделать игру сложнее). Если игрок проигрывает раунд, то задежка увеличиается(чтобы сделать игру легче).
Цель игры - кликать на спрайтах, чтобы они остановились на одном и том же костюме. Было бы здорово, если бы сцена определяла, когда вы закончили играть и говорила вам, что вы выиграли или проиграли, проверяя, каждый ли костюм совпадает друг с другом.__
Во-первых, сцена должна знать, когда игрок закончил игру. Мы можем добиться этого, добавив проверку, чтобы узнать, все ли спрайты остановились, когда мы кликнули на них. Давайте вернемся и улучшем каждый из наших спрайтов, кликну на блоке передать новое сообщение, проверить на конец(checkForEnd)
Сцена может отвечать сообщением и проверять, не закончилась ли игра, если все переменные спрайтов остановились и стали равным 1, используя позицию х блока Спрайта для каждого спрайта, и изменяя "х позицию", чтобы остановить Если все три спрайта имеют значение для остановки равное 1, мы знаем, что игра закончилаь и мы можем проверить, выиграл ли игрок.
Чтобы сделать это, мы можем использовать ту же позицию х блока Спрайт, но вместо того, чтобы искать переменную, которая останавливает, мы можем искать костюм # и посмотреть, если Спрайт 1 имеет тот же самый костюм, что и Спрайт2, и если Спрайт имеет такой же костюм, как и Спрайт3.
Чтобы сделать это, нам нужно будет блок "если", чтобы проверить кажду переменную, и этого "если... иначе" блока узнать, выиграл ли игрок или проиграл, сравнивая каждый костюм #.
From this point on, you could announce the result of the game using a broadcast and respond to this with another sprite. Maybe get Felix back to congratulate or commiserate the player? А теперь, можете ли вы объявить результат игры, использую передать и ответить на это с помощью другого спрайта. Может ли Феликс получать поздравления или посочувствовать игроку?
Отлично, вы заверишили создание игры, теперь вы можете насладиться ей!
Не забудьте, что вы можете поделиться вышей игрок с вашими друзьями и близкими, нажав на Поделиться в меню!