спрайты майнкрафт для скретч
Minecraft в Scratch
Все больше родителей отмечают и поддерживают современную тенденцию, направленную на раннее развитие детей. Особое место при этом занимает освоение детьми компьютерной грамотности и технологий с самого раннего возраста. Здесь главная трудность заключается в том, чтобы заинтересовать ребят и удержать их интерес.
Особенности Скретч. Как сделать собственный Майнкрафт?
Minecraft – популярная инди-игра в жанре песочницы с элементами симулятора выживания и открытым миром, разработанная шведским программистом Маркусом Перссоном. Это одна из самых успешных компьютерных игр в истории: ее продажи превысили 80 миллионов копий, а количество зарегистрированных игроков превысило 100 миллионов. Игра имеет практически неограниченные возможности, позволяя создавать целые миры и управлять действиями главных героев. Создание игры в Minecraft возможно в разных программах. Но вряд ли у семилетнего ребенка возникнет желание заниматься программированием и реализацией собственных проектов в среде разработки, привычной для взрослого программиста. Детям будет сложно, неинтересно и скучно. Поэтому в 2003 году Массачусетским технологическим университетом был разработан Scratch — понятный и увлекательный язык программирования, предназначенный специально для детей. Скретч это не просто язык, а полноценная визуальная объектно-ориентированная среда программирования. Она идеально подходит для обучения школьников младших и средних классов основам программирования и создания собственных игр и анимации.
Данная программная среда имеет массу положительных качеств:
Scratch подобно конструктору Лего позволяет собирать полноценную программу из разноцветных блоков-кирпичиков. В программу можно вносить изменения в любой момент, и сразу видеть, как она работает. Именно эта особенность данной среды программирования дает возможность создать аналог знаменитого игрового кубомира Майнкрафт на Скретч. Наш курс подходит тем, кто уже освоил язык Scratch и хочет углубить свои знания и найти им новое применение.
На занятиях курса «Minecraft в Scratch» ваш ребенок:
Наши опытные преподаватели покажут, что программирование и игру можно совмещать самым захватывающим и увлекательным образом. Добро пожаловать в потрясающий мир компьютерного программирования Minecraft в Scratch!
Системные требования к компьютеру
Просьба убедиться, что Ваш компьютер подходит для курса. Рекомендации по ссылке
Инструкция по установке программ для курса «Minecraft в Scratch».
По завершении курса каждый ученик получает именной сертификат от CODDY
Скрипт для скретч по прыжку на другой объект
Привет тебе мой юный друг! Сегодня я расскажу о том, как создать скретч прыжок одного спрайта на другой в среде разработки Scratch. Если ты следишь за моими публикациями, то знаешь как написать код для самого обычного прыжка. Если же ты впервые в этом блоге, то обязательно прочти первую часть — Scratch алгоритмы на примере проекта Ниндзя. В ней описаны простейшие движения, прыжки, исчезновения и подготовлена вся графика для мгновенного начала над проектом. Ну а знатоки Скретч программирования могут пропустить этот шаг и приступить к изучению простейшего скрипта запрыгивания на другие объекты.
ВНИМАНИЕ!
Разрабатывая бесплатный курс по детскому программированию в scratch 2 я подготовил 4 варианта прыжка для персонажа с кодом разного уровня сложности. Описание этой статьи относится к 3 уровню сложности. Более простые варианты запрограммирования прыжковых навыков объекта смотрите по ссылкам ниже:
Так же рекомендую ознакомиться с бесплатными уроками по Скретч 2 на другие тематики в разделе Детское программирование (перейти). Ну и конечно я буду очень благодарен за финансовую помощь! Ее вы можете оказать переводом на СберБанк Онлайн по телефону 8-977-915-25-76 или на Яндекс.Деньги по кнопке слева!
Программируем скретч прыжок по видео инструкции
Пишем код для прыжка на другой спрайт в Скретч
Перед началом работы загрузите фон и три спрайта или же нарисуйте спрайты в редакторе. О том, как рисовать персонажи и объекты в scratch читай в моем отдельном материале — Рисуем в редакторе Scratch (статья в стадии написания). В моем случае получилось так:
В представленном скрипте будет прыгать черный квадра. Вначале на 2 объект, а потом на 3 объект и наоборот. Начинаться код будет следующим образом:
Скрипт описывает последовательность действий после нажатия на Флаг. Всегда делайте начальное позиционирование объекта, чтобы условия запуска игры были одинаковы и не всплыло дополнительных программных глюков. Делайте это не только для главного персонажа, а для всех объектов! Далее вводим переменную, в которой будут храниться и изменяться данные по координатам прыжка персонажа. Ну и конечно же запускаем цикл постоянной работы. В цикл запишем условия для позиционирования спрайта (черный квадрат) в рабочем пространстве.
ВНИМАНИЕ:
В Интернете много примеров прыжка с упором на цвет объектов. Если у вас не получилось реализовать прыжок за счет цвет, то этот материал поможет решить проблему. На моих уроках детского программирования дети часто допускают ошибки именно с кодировкой цветов, поэтому прыжок спрайта не касается этой темы совсем!
Теперь рассмотрим сам код прыжка, но разделим его на две части для лучшего восприятия и осознания того, что написано в коде.
На этом прыжковый урок закончен, но не завершена работа юного программиста. Домашним заданием будет доработка скрипта:
Экспорт и импорт
Материал из Скретч Вики
Экспорт и импорт представляет собой процесс вывода из проекта определённого объекта или его импорт. В Скретч это можно делать с проектами, спрайтами, костюмами, фонами, звуками, скриптами и списками.
Содержание
Экспорт
Некоторые файлы можно извлекать из Скретч. Это называется экспортом.
Проект
Спрайт
Костюм
Фоны можно экспотрировать как костюмы: нажать правой кнопкой мыши (или ⌘ + левая кнопка мыши на Mac) на фон и выбрать Сохранить в локальный файл. Форматы файлов такие же, как и у костюмов.
Звук также можно сохранить, нажав на него правой кнопкой мыши (или ⌘ + левая кнопка мыши на Mac) и выбрав Сохранить в локальный файл.
Скрипт
Скрипты могут быть экспортированы только в рюкзак. Для экспорта открой рюкзак и перемести туда нужный скрипт. Все скрипты сохраняются на сервере.
Список
Импорт
Импорт — это процесс вставки объекта в проект.
Проект
Спрайт
Костюм
Чтобы импортировать костюм нажми на кнопку «Импорт» в графическом редакторе Скретч у спрайта и выбери файл для загрузки (Скретч 1.4 не поддерживает векторную графику).
Чтобы импортировать фон нажми на кнопку «Импорт» в графическом редакторе Скретч у сцены и выбери файл для загрузки (Скретч 1.4 не поддерживает векторную графику). Если файл будет слишком маленький по размеру остальное место заполнится белым цветом.
Скрипт
Для импорта скрипта перемести его из рюкзака в область скриптов.
Примечание: для того, чтобы использовать рюкзак, нужно войти в систему или зарегистрироваться.
Список
Scratch для «продвинутых»
Клонирование и переменные в Scratch
Моему ученику нравилась игра — «Зомби против растений». И ему было интересно самому запрограммировать её. Давайте вспомним как данная игра работает? С правой стороны у нас есть шеренга растений, которая расстреливает приближающихся зомби.
Есть множество решений данной задачи, но на мой взгляд более элегантное решение — задействовать минимально возможное количество спрайтов, т.е. использовать клонирование.
Как сделать так, чтобы у каждого отдельного клона был собственный уровень жизни? Что выбрать переменные или списки? Сделали попытку использовать списки, но после более детальной проработки поняли, что данная структура данных не помогает решить проблему. У переменных и списков, в Scratch есть 2 типа видимости для каждого типа данных — это «для всех спрайтов» или «только для этого спрайта». Пришлось проверять область видимости. Начали мы с переменных.
Дойдя до рабочего варианта переменной с областью видимостью «только для этого спрайта». В классических языках программирования такой тип видимости называют — локальным или приватным в зависимости от контекста.
Оказывается, что если эта переменная с данной областью видимости используется в клоне, то в клоне создается экземпляр переменной, принадлежащий конкретному клону и который используется для внутренних вычислений/работы клона. В нашем случае, у каждого клона есть своя «жизнь». Если стало интересно, то советую обратиться к справочнику. А вот картинка, которая показывает, как спрайты или клоны работают с переменными разных типов видимости.
Переменная с областью видимости «для всех спрайтов» (рисунок слева) — одна на всех. Кстати, здесь вы можете с детьми посмотреть работу с критическими секциями и что такое гонка за ресурс. А если область видимости переменной — «только для этого спрайта», то у спрайта и у его клонов появляется собственная переменная с тем же именем, с которой они работают (рисунок с права). И клоны не имеют доступа к переменной оригинала и переменной другого клона.
Это стало неожиданным и приятным открытием свойств Scratch для создания подобных алгоритмов.
ВАЖНО: Переменная — это очень мощный инструмент настоящего программиста, поэтому я сразу учу детей правильному именованию переменных, так как этот навык поможет им в проектах разной сложности.
Имена объектов как их идентификаторы
ВАЖНО: все переменные с зоной видимостью «только для этого спрайта».
Данный инструмент для меня стал совсем неожиданным. Давайте начнем с истории о том, как мы с учеником наткнулись на данную особенность языка. Мой ученик решил, создать игру с «искусственным интеллектом». Игра представляет звездные войны на космических кораблях и у игрока есть возможность управлять одним кораблем, в то время как противники гоняются за вами и за друг другом. Чтобы они могли преследовать вас или друг друга, им нужно как-то принимать решение о том, кого преследовать. Данную задачу можно решить в лоб и задать очередность преследования кораблей, но игра потеряет свою интеллектуальность и быстро наскучит. Поэтому ученик решил настроить интеллект таким образом, чтобы корабли с интеллектом преследовали ближайшего противника. Давайте посмотрим, как он начал решать данную задачу.
На мой взгляд хорошее решение для создания быстрого прототипа. Но какие ограничения здесь есть? Первое, усложнение кода по мере добавления новых кораблей. Следовательно, сложность кода повышается и не исключены мутации кода из-за усложнения. Время поиска ошибки и отладки алгоритма будет расти. И конечно, никто не отменял такую прикольную метрику, как старение кода (advance level SW Development). Что же делать? А делать необходимо следующее, нужно сделать обобщеный алгоритм, который будет динамично приспосабливаться к увеличению или уменьшению количества кораблей.
Для данного алгоритма нам и понадобиться свойство языка — имя как идентификатор объекта. Пришло время больших изменений и здесь вы, как учитель, можете рассказать про такое явление как рефакторинг. Это последовательное изменение кода, улучшение его структуры и его оптимизация. А главное, чтобы каждое изменение не ломало работу программы, и объем изменений тоже должен очень аккуратно подобран. Слишком много изменений — плохо, слишком мало — долго. Сформированный навык рефакторинга даст преимущество и эффективность работы программиста. Но для формирования навыка нужно работать головой, а не просто тыкаться. У меня получилось сделать 4 изменения в первоначальной программе и результат не изменился.
Заметьте, что я еще не удалил блоки, а оставил их. Зачем? Потому, что если что-то пойдет не так, мы можем вернуть предыдущий вариант, начав все заново. Но как только я проверю правильность выполнения обновленного скрипта, я сразу же их удалю, чтобы не отвлекаться на них в последующем.
Заметили? Сейчас в блоке «повернуться к …» стоит переменная и эта штука работает. Т.е. мы минимальными усилиями проверили, что данный подход работает. Это просто круто. Теперь мы можем начать писать алгоритмы, которые позволят определять объект преследования ближайшего корабля.
Что нам пригодится? Это из структур данных — это переменные и списки. Из алгоритмов — это нахождение минимального числа (расстояния) в списке. Еще нам необходим алгоритм, который определит имя объекта для преследования по минимальному расстоянию.
Сейчас будет написано много кода. Но для того, чтобы потом не захлебнуться и не запутаться в куче скриптов, нам необходимо использовать еще одну классную функцию, а именно создание собственных блоков. Эта функция очень мощная, но ее редко используют школьники, да и некоторые программисты, а ведь она позволяет создать понятный с первого прочтения алгоритм программы. Кстати, можете почитать про приемы создания понятного кода в книге Мартина Фаулера «Рефакторинг. Улучшение существующего кода»
Как и перед любым масштабным строительством нам необходимо все спланировать. Давайте спланируем в каком порядке будем разрабатывать блоки:
Для того, чтобы создать обобщенный алгоритм нам чем-то нужно пожертвовать, например, оригинальными именами спрайтов, придется их стандартизировать и получим следующий расклад.
И теперь мы готовы описать 1 часть программы. Все пишем для 1-ого корабля. Запускаем отдельно данный скрипт и смотрим результат. Поехали!
Если мы добавим новый корабль, нам нужно изменить в данном алгоритме лишь одну циферку. Клево? Клево!
Погнали дальше. А давайте научим его 2 алгоритму. Смотрим, что получилось. Это сразу конечный результат со вспомогательными функциями.
Ура! Работает. Проверить это можно следующим образом, должен быть обязательно 0 одним из значений в списке расстояний. Если у вас это не так, ищите ошибку.
Едем дальше! Поиск минимального расстояния. Заметили, что расстояние всегда положительно. И всегда будет минимальное число — 0. Ай-я-яй! Вывод — искать минимум, но не ноль. Можете попробовать свои силы и оптимизировать код самостоятельно, чтобы не делать расчет расстояния от корабля 1 до корабля 1 (это не опечатка).
Обучаем спрайт новой функции и получаем.
Не забываем проверять! Для этого можно даже остановить игру и запустить отдельный скрипт.
Мы написали все, что необходимо, теперь главное правильно использовать данные функции.
Если у вас все работает правильно, то вы должны увидеть следующее:
Заметили, что корабль с «искусственным интеллектом» разрывается между разными противниками. Вы можете усовершенствовать программу и усложнить принятие решения. Например, если у преследуемого корабля осталось мало жизни, то он добивает его, а если он нашел, ближе и с еще меньшим здоровьем, то добить сначала слабейшего.
Кстати, в данной программе можно уменьшить количество действий и усовершенствовать алгоритмы. Попробуйте свои силы. Взять данную программу можно здесь.
Подводим итоги
Вот на таких кейсах я узнал, как Scratch дает возможность ученикам быстрее освоить множество реальных техник программирования. На нем можно рассказывать про работу критических секций, про обобщенные алгоритмы, про переменные и их области видимости, про создание собственных блоков и структурирование кода. А также на данном языке можно рассказывать про профессиональные навыки, например, рефакторинг.
Это лишь малая часть инструментария программиста, но она являет очень важной. А в Scratch это объяснить становится чуточку легче.
Спрайты в Scratch
Что такое спрайт в Scratch?
Спрайт – это объект, выполняющий определенные действия в проекте, помимо выполнения команд обладающий способностью передвигаться.
Спрайты в Scratch: использование библиотеки
Проще всего для нас будет взять готовый спрайт из библиотеки. Чтобы открыть библиотеку спрайтов нужно нажать вот сюда:
Можно нажать либо на значок лупы, либо на значок котика, в любом случае откроется библиотека спрайтов. Здесь, воспользовавшись удобным поиском, мы можем выбрать из нужный нам спрайт с возможностью его редактировать.
Создание собственного спрайта в Scratch
Наводим мышкой на значок с котиком и в появившемся меню выбираем кисточку.
Откроется вот такой редактор, нарисуйте нужный вам объект, но следите, чтобы его центр был в центре перекрестия, как изображено на картинке ниже.
правильно:
неправильно:
Почему это так важно? Всё дело в том, что программа опирается не на центр созданного вами объекта, а на само перекрестие и область вокруг него. Если вы нарисуете свой объект где-то в стороне, то программа будет работать не с изображением, а с невидимой точкой, на которую было установлено перекрестие.
Редактирование спрайта в Scratch
В редакторе спрайта мы можем добавить текст, нарисовать что-нибудь с помощью инструмента «кисть», сделать заливку, поменять форму объекта и добавить фигуры.
Если мы хотим изменить размер объекта, нам нужна вкладка “Внешность”, в ней выберем блок «Установить размер…».
Также количество созданных спрайтов можно изменять с помощью команд «Дублировать» и «Удалить». Чтобы воспользоваться ими, наведите курсор на свой спрайт и нажмите по нему правой кнопкой мыши.
Добавление своего спрайта в Scratch
Импорт картинки для спрайта в Scratch с компьютера
Для добавления собственной картинки нажимаем на «загрузить спрайт» и выбираем нужный файл в появившемся окне. Удобнее будет работать с изображением в формате png.
Добавление картинки для спрайта из библиотеки стоковых изображений
Взять готовые картинки для спрайта можно из бесплатных библиотек со стоковыми фото. Заходите на сайт https://www.freepng.ru/ или любой другой библиотеки с png изображениями, нажимаете на лупу и вводите то, что вы бы хотели добавить. Листаете вниз и выбираете необходимую вам картинку, нажимаете на неё, а затем выбираете кнопку «Скачать».
После того, как файл скачался, заходим в Scratch и выбираем “загрузить спрайт”.
В проводнике найдите папку «Загрузки» (обычно все файлы скачиваются именно туда), найдите картинку, добавьте её. Дело осталось за малым, нужно всего лишь подогнать по размеру и всё, новый спрайт готов.