Приёмная комиссияadmissionКредит на образованиеadmission
Как сделать игру «Майнкрафт» в «Скретч»: пошаговое руководство для начинающих

Как сделать игру «Майнкрафт» в «Скретч»: пошаговое руководство для начинающих

article

Учитесь на курсах в «Синергии»

banner

«Скретч» (Scratch) — визуальная среда программирования для детей и подростков, в которой код собирается из цветных блоков. Знакомство с программой обычно начинают с простых анимаций и мини-игр, но её возможности гораздо шире. Конечно, создать полноценный «Майнкрафт» с бесконечным миром и всеми его механиками здесь не получится, но можно сделать его упрощённую 2D-версию. Рассказываем, как сделать игру «Майнкрафт» в «Скретч»: реализовать мир из блоков, движение персонажа, добычу ресурсов и строительство.

Подберите программу обучения, узнайте проходной балл и начните учиться бесплатно

Что мы будем делать и каким получится проект

Вы создадите небольшую 2D-игру. Мир будет состоять из квадратных блоков, расположенных по сетке, а игрок сможет добывать ресурсы и строить собственные конструкции, играя за Стива — основного персонажа франшизы.

В готовом проекте вы сможете:

  • перемещать Стива по клеткам с помощью клавиш со стрелками;
  • разрушать блоки щелчком мыши;
  • добывать камень только после включения кирки клавишей P;
  • переключаться между травой, землёй и камнем клавишами 1, 2 и 3;
  • устанавливать выбранный блок перед персонажем нажатием пробела.

В процессе создания вы освоите четыре важнейших инструмента «Скретча» — клонов, списки, переменные-состояния и работу с сеткой координат.

Как подготовить игровое поле

Ранее мы уже рассказывали о том, как зарегистрироваться на платформе и создать проект.

Прежде чем сделать героя и блоки, договоримся о размерах. В «Скретч» сцена всегда 480 пикселей в ширину и 360 в высоту, а координаты идут от -240 до 240 по X и от -180 до 180 по Y. Если разделить это поле на клетки по 40 пикселей, получится сетка 12 на 9 клеток — удобное поле для «мини-Майнкрафта».

Как выбрать размер сцены и нарисовать сетку

Размер блока в 40 пикселей — золотая середина. Слишком мелкие блоки (10–20 пикселей) сделают персонажа неразличимым, слишком крупные (80+) оставят на сцене место для двух с половиной блоков. Все дальнейшие координаты кратны 40: -240, -200, -160… до 240 по X и от -160 до 160 по Y.

В настоящем «Майнкрафте» мир тоже разбит на кубические блоки: только сетка там объёмная, а у нас плоская. Идея та же: любая клетка карты — это либо один блок определённого типа, либо пустота.

Задний фон делаем спокойным. В правом нижнем углу нажмите «Выберите фон» и выберите Blue Sky («Голубое небо»). Подойдёт и любой одноцветный, без лишних деталей — они будут отвлекать от блоков.

Если хочется больше атмосферы «Майнкрафта», можно нарисовать свой фон в редакторе «Скретча»: голубое небо и белые кубические облака.

Как нарисовать спрайты блоков

Спрайт — это двухмерный графический объект, который можно создавать, анимировать и программировать для выполнения разных действий. Это — основной объект, с которым взаимодействует игрок.

Все виды блоков мы делаем одним спрайтом с несколькими костюмами. Это критично: «Скретч» позволяет создавать клоны только одного спрайта, а нам нужны сотни блоков разных типов.

Сначала удаляем стандартного кота (правый клик → «Удалить»). Нажимаем «Выберите спрайт» → «Нарисовать». В открывшемся редакторе рисуем квадрат 40×40 пикселей (размер указан слева, под названием) — это будет первый костюм.

Для добавления новых костюмов используем кнопку «Выберите костюм» в левом нижнем углу редактора. Чтобы клоны потом идеально стыковались в сетку, все они должны быть одного размера — 40 на 40. Нарисовать квадрат можно с помощью инструмента «Прямоугольник» с зажатой клавишей Shift.

Итак, создайте и назовите четыре костюма:

  • grass — зелёный сверху и коричневый снизу (трава на земле). «Траву» можно добавить, нарисовав поверх коричневого квадрата зелёный прямоугольник того же размера. Следите, чтобы при этом общий размер блока оставался неизменным.
  • dirt — сплошной коричневый (земля).
  • stone — сплошной серый (камень).
  • planks — светло-коричневый с горизонтальными линиями (деревянные доски). Добавить их можно инструментом «Линия».

Сам спрайт переименуйте в Block — так его будет проще найти в коде.

Как создать главного героя — Стива

Стив — наш игровой персонаж, который двигается по клеткам, ломает и ставит блоки. Его добавим отдельным спрайтом.

Как нарисовать или загрузить спрайт Стива

Нажимаем «Выберите спрайт» и в поиске набираем Boy или Girl — подойдёт любой человеческий персонаж из библиотеки. Для более похожего на «Майнкрафт» геймплея можно нарисовать героя самостоятельно. Создайте простую пиксельную фигурку Стива: квадратную голову, голубую футболку, синие штаны и тёмные ботинки. Не стремитесь к высокой детализации — для этой игры достаточно схематичного персонажа. Размер фигурки должен составлять 50 на 20.

Сделайте минимум два костюма: stand (стоит на месте) и walk (одна нога чуть впереди). Между ними и будет переключаться анимация шага. Переименуйте спрайт в Steve.

Поставьте Стива в стартовую позицию: x=0, y=0. Размер настройте параметром «Размер» справа под сценой: подойдёт значение 60–80. Важно, чтобы Стив помещался в одну клетку сетки, иначе его движение будет выглядеть странно.

Если хотите сделать героя с большим количеством анимаций (бег, копание, прыжок) — добавляйте по 2–3 костюма на каждое действие. Но для первой версии двух костюмов stand/walk достаточно: рабочий прототип игры важнее красоты.

Как запрограммировать управление и движение по клеткам

Главная фишка — Стив двигается не плавно, а прыгает по клеткам сетки, на 40 пикселей за нажатие. Это делает управление предсказуемым и совпадающим с сеткой блоков.

Соберите четыре одинаковых по логике скрипта — для стрелок влево, вправо, вверх, вниз:

  • Когда клавиша (стрелка вправо) нажата (жёлтый блок «События»).
  • Изменить x на 40 (синий блок «Движение»).
  • Следующий костюм (фиолетовый блок «Внешность»).

Для стрелки влево: изменить x на -40. Для стрелки вверх: изменить y на 40. Для стрелки вниз: изменить y на -40.

Каждое нажатие сдвигает Стива ровно на клетку и меняет костюм — так получается анимация шага. Проверьте: если Стив «застревает» между клетками, кликните на него и убедитесь, что его текущие координаты — числа, кратные 40.

Как переключать блоки в руке с помощью переменной

Чтобы у Стива был выбор, какой блок ставить, заведём переменную «Выбранный блок». Откройте группу «Переменные» → «Создать переменную». Задайте имя selected_block, тип «для всех спрайтов». Галочку отображения на сцене можно оставить — так игрок будет видеть текущий выбор.

Теперь три скрипта переключения на спрайте Стива:

  • Когда клавиша (1) нажата → Задать selected_block значение grass.
  • Когда клавиша (2) нажата → Задать selected_block значение dirt.
  • Когда клавиша (3) нажата → Задать selected_block значение stone.

Нажимая цифры на клавиатуре, игрок будет менять блок в руках.

В чём главная магия: генерация мира

Как заполнить карту теми самыми блоками травы, земли и камня, чтобы получился ландшафт?

Наш мир — это сетка 12×5 клеток. В каждой клетке должен стоять свой блок: верхний ряд — трава, три ряда ниже — земля, в самом низу — камень. 12 колонок умножить на 5 рядов блоков по вертикали — это 60 отдельных квадратов, которые нужно вывести на экран.

Самый простой способ — создать в «Скретче» 60 отдельных спрайтов и вручную расставить их по координатам. На это уйдёт час рутинной работы. А если вы захотите расширить карту или изменить ландшафт, придётся таскать каждый спрайт заново.

Заменить эту гору ручной работы помогает связка из двух инструментов «Скретча»: клоны и списки. Клоны позволяют штамповать копии одного спрайта Block, а списки хранят адреса — где и какой тип блока должен появиться. Один короткий скрипт пробегает по спискам, штампует 60 клонов в нужных местах и выдаёт каждому свой костюм — траву, землю или камень.

Именно этот приём и называется «генерация мира»: карта собирается по команде из маленьких блоков. Тот же принцип используется и в настоящем «Майнкрафте»: огромный кубический мир там тоже генерируется программой, а не собирается вручную.

Зачем нужны клоны и как они работают

Клон — это временная копия спрайта, живущая по своим правилам. Спрайт Block — это чертёж, а клоны — настоящие блоки, штампуемые по этому чертежу.

Логика такая:

  • Сам спрайт Block прячется («Спрятать» в самом начале игры).
  • По команде запускается цикл, который создаёт десятки клонов в нужных координатах.
  • Каждый клон получает свой костюм (grass, dirt, stone) и своё место на сетке.
  • Клоны видны на сцене, а исходный чертёж — нет.

Такой подход в «Скретче» заменяет то, что в других языках называется «массивом объектов». Один скрипт создаёт весь мир.

Важный лимит: программа позволяет держать одновременно не больше 300 клонов на сцене. Для нашего мира 12×5=60 блоков, что далеко от предела, но если вы решите расширить карту, помните: каждый лишний блок — это отдельный клон. Оптимизировать можно через удаление невидимых клонов (те, что за пределами экрана) или через хранение части карты только в списках, без визуального клона.

Как хранить координаты мира в списках

Список — это ящик, в котором «Скретч» хранит много значений сразу (в отличие от переменной, где одно значение). Для карты нам нужны три списка:

  • MAP_X — координаты X всех блоков.
  • MAP_Y — координаты Y всех блоков.
  • MAP_TYPE — тип блока в этой точке (grass/dirt/stone).

Создайте их через «Переменные» → «Создать список». Отображение на сцене отключите, иначе они закроют половину экрана.

Для стартового ландшафта нужно заранее прописать координаты. Возьмём такой пейзаж: ряд травы на y=-80, три ряда земли ниже (y=-120, -160, -200) и один ряд камня (y=-240). По X — от -240 до 240 с шагом 40 (13 колонок).

Заполнение удобно вынести в отдельный скрипт на спрайте Block. Сначала создайте все три списка и только потом собирайте скрипт заполнения.

Начните с блока «Когда флаг нажат», а затем поставьте подряд три блока «удалить все элементы»: для MAP_X, для MAP_Y и для MAP_TYPE. Так при каждом запуске карта будет строиться заново, без остатков прошлой игры.

Заведите переменную col. С помощью скрипта задайте ей значение 0. Дальше поставьте цикл «Повторить 13 раз» — по одному проходу на каждую колонку карты.

Здесь важно понять, что именно происходит внутри цикла: мы пока ничего не рисуем на сцене и не меняем костюмы. Единственные блоки внутри — это команды «добавить () в ()», которые записывают в списки числа и названия. За один проход в списки уходит пять «строк» данных — это будущий вертикальный столбик из пяти блоков: трава сверху, три земли под ней и камень внизу. Сами блоки появятся на сцене позже, когда по этим данным создадутся и раскрасятся клоны. Одна «строка» данных — это три блока «добавить () в ()» подряд, по одному на каждый список. Соберём блок «травы»:

  • В разделе «Переменные» найдите блок добавить () в MAP_X. Перетащите его внутрь цикла.
  • Соберите выражение -240 + col × 40. Нажмите «Операторы» (зелёные блоки). Возьмите блок () + () и вставьте его в пустое место после слова «добавить». Получится добавить ( () + () ) в MAP_X. В левое окошко впишите -240, в правое — вставьте ещё один зелёный блок () × (). Теперь получится -240 + ( () × () ). В первое окошко блока умножения перетащите оранжевый кружок col из раздела «Переменные». Во второе окошко впишите 40.

Теперь по аналогии добавим остальные блоки.

Для земли:

  • добавить (-240 + col × 40) в MAP_X
  • добавить (-120) в MAP_Y
  • добавить (dirt) в MAP_TYPE
  • добавить (-240 + col × 40) в MAP_X
  • добавить (-160) в MAP_Y
  • добавить (dirt) в MAP_TYPE
  • добавить (-240 + col × 40) в MAP_X
  • добавить (-200) в MAP_Y
  • добавить (dirt) в MAP_TYPE

Для камня:

  • добавить (-240 + col × 40) в MAP_X
  • добавить (-240) в MAP_Y
  • добавить (stone) в MAP_TYPE

В самом конце цикла поставьте «изменить col на 1», чтобы следующая колонка встала на 40 пикселей правее. Ничего на сцене пока не появится — это нормально. На этом этапе программа только заполняет списки данными. Блоки будут созданы позже с помощью клонов.

После того как списки заполнены, отдельным скриптом создаём клонов:

  • Повторить (длина MAP_X) раз → Создать клон себя.

Блок «Длина» (число элементов списка) сам подставит нужное количество повторов, поэтому «Скретч» создаст ровно столько клонов, сколько записей в MAP_X, — весь ландшафт появится на сцене разом.

Как настроить отрисовку каждого клона

Каждый клон должен встать в правильное место и показать нужный костюм. Для этого нужен счётчик и отдельный скрипт «когда я начинаю как клон».

Создайте переменную cursor («указатель на текущую запись») и задайте ей значение 0. Перед созданием клонов в цикле генерации мира каждый шаг увеличивайте cursor на 1. Затем впишите скрипт клона:

  • Когда я начинаю как клон.
  • Перейти в x: (элемент cursor списка MAP_X), y: (элемент cursor списка MAP_Y).
  • Сменить костюм на (элемент cursor списка MAP_TYPE).
  • Показаться.

Разница между удалением клона и самим спрайтом — важная деталь. Оригинальный спрайт Block всегда остаётся в проекте: он невидим, но именно из него штампуются клоны. Если удалить оригинал, весь механизм ломается. А клоны можно создавать и удалять сотнями без последствий: это временные копии.

Как разрушать блоки

Ломать блоки будем мышкой. Если Стив достаточно близко и в руке подходящий инструмент, при клике блок исчезает.

Как сделать инструмент в руках (кирку)

Инструмент задаётся ещё одной переменной tool. Её значения — hand (рука, ломает только траву и землю) или pickaxe (кирка, ломает всё, включая камень). По умолчанию tool = hand. Переключаем на кирку клавишей P:

  • Когда клавиша (P) нажата → Задать tool значение pickaxe.
  • Когда клавиша (H) нажата → Задать tool значение hand.

Что должно происходить при клике по блоку

На спрайте Block добавляем событие клика по клону:

  • Когда на меня нажимают.
  • Если (расстояние до Steve) < 60
  • Если (текущий костюм = stone) и (tool = pickaxe) — Удалить этот клон.
  • Иначе, если (текущий костюм = grass) или (текущий костюм = dirt) — Удалить этот клон.

Иначе — ничего не делать (блок слишком далеко).

Расстояние 60 пикселей — это чуть больше полутора клеток. Так Стив не сможет ломать блоки через всю карту, но легко достанет соседние.

Важно: землю нельзя мгновенно ломать киркой в промышленных масштабах — в реальном «Майнкрафте» кирка ломает только камень и руды. Оставим этот принцип: рукой — траву и землю, киркой — только камень.

Для большей достоверности можно добавить задержку: например, кирка ломает камень не мгновенно, а через 1 секунду после клика. Это делается блоком «Ждать 1 секунду» перед «Удалить этот клон». Так игра становится ближе к оригинальному «Майнкрафту», где каждый блок требует времени на добычу.

Отдельно стоит подумать, что делать со звуком. Каждое разрушение можно сопровождать коротким звуком Pop или собственной аудиодорожкой, например треском камня. Откройте вкладку «Звук» на спрайте Block, добавьте нужные звуки из библиотеки и вставьте блок «Играть звук … до конца» перед удалением клона. Звуковая обратная связь резко повышает реалистичность.

Программы обучения 

1349
Факультет игровой индустрии и киберспортаЮридический факультетФакультет информационных технологийФакультет менеджментаПомогите выбратьФакультет психологииФакультет бизнесаФакультет продакт-менеджментаФакультет экономикиШкола современной музыки БАСТА × СИНЕРГИЯФакультет дизайнаФакультет педагогикиМедицинский факультетИнженерный факультетФакультет кибербезопасностиФакультет логистикиФакультет международного бизнесаФакультет комиксовФакультет игровой индустрии и киберспортаФакультет спортаФакультет музыкальной индустрииФакультет анимации с изучением ИИФакультет управления в технических системахФакультет лингвистикиФакультет рекламыФакультет кино и телевиденияФакультет теплоэнергетики и теплотехникиФакультет программированияФакультет международных отношенийФакультет государственного и муниципального управленияФакультет строительстваФакультет туризма и индустрии гостеприимстваФакультет журналистикиФакультет интернет-профессийФакультет техносферной безопасностиФакультет геймдизайна и разработки игрФакультет блокчейна и криптовалютыФакультет электроэнергетики и электротехникиФакультет фитнеса и культуры здоровьяАрт-факультетФакультет умных городовФакультет политологииФакультет комьюнити-менеджментаФакультет банковского бизнесаФакультет технологического предпринимательстваФакультет e-commerceФакультет искусственного интеллектаДепартамент международного бизнесаФормат обученияОнлайнОчный

Как строить новые блоки

Строительство — обратный процесс. Игрок нажимает пробел, и перед Стивом появляется блок выбранного типа.

В чём хитрость установки блока перед Стивом

Ключевой момент — куда именно поставить блок. Просто «в точке Стива» не подходит: блок закроет героя. Нужно поставить перед ним, в зависимости от направления движения.

Введите переменную facing (направление): значения right, left, up, down. В скриптах движения Стива обновите её значение:

  • В скрипте «стрелка вправо»: Задать facing = right.
  • В скрипте «стрелка влево»: Задать facing = left.
  • Аналогично для up и down.

Скрипт постройки — на спрайте Стива:

  • Когда клавиша (пробел) нажата.
  • Считаем целевые координаты new_x и new_y от текущей позиции Стива в зависимости от facing (например, для right: new_x = X Стива + 40, new_y = Y Стива).
  • Округляем new_x и new_y до ближайших значений, кратных 40.
  • Проверяем, свободна ли эта точка. Для этого перебираем список MAP_X: если ни одна запись не совпадает одновременно с new_x и new_y — точка пустая.
  • Если свободно: добавить new_x в MAP_X, new_y в MAP_Y, selected_block в MAP_TYPE, увеличить cursor на 1, создать клон Block.

Это выглядит громоздко, но каждая деталь важна: без округления блоки встают криво, без проверки — накладываются друг на друга.

При разрушении для порядка можно тоже обновлять списки MAP_X/MAP_Y/MAP_TYPE (искать нужную запись и удалять её), но для первого проекта достаточно просто удалять клон — карту это визуально не сломает.

Игра готова! Что дальше

Вы только что собрали упрощённую 2D-версию «Майнкрафта» с генерацией мира, движением по клеткам, разрушением и строительством. По ходу проекта вы освоили четыре мощных инструмента:

  • Клоны — как штамповать десятки одинаковых объектов из одного шаблона.
  • Списки — как хранить данные о карте в упорядоченном виде.
  • Переменные-состояния (selected_block, tool, facing) — как хранить текущее состояние игрока.
  • Систему координат и сетку — как заставить объекты вставать ровно и предсказуемо.

Куда двигаться дальше? Делимся идеями для улучшений:

  • Инвентарь. Заведите ещё три списка для количества каждого типа блоков в кармане и не позволяйте ставить блок, если его нет.
  • Мобы. Добавьте ещё один спрайт-«крипер», который ходит случайными шагами и при касании со Стивом «взрывается» (удаляет соседние блоки).
  • Случайная генерация. Замените фиксированный ландшафт на цикл с блоком «случайное число» — каждая новая игра будет создавать уникальную карту.
  • Счёт и цели. Заведите переменную «Очки» и добавляйте по 1 за каждый добытый блок. Или поставьте цель: собрать 30 камней, чтобы победить.
  • День и ночь. Заведите переменную «Время» и меняйте фон между светлым и тёмным каждые 30 секунд. Ночью можно спавнить мобов, а днём — нет.
  • Крафт. Более амбициозная задача: две доски + один камень = один блок «дверь». Логика проверяется через списки инвентаря и кнопку «сделать».

Если что-то не работает, включите отладку. «Скретч» позволяет вывести значение любой переменной или списка на сцену — просто поставьте галочку слева от имени. Так вы в реальном времени видите, куда встал новый блок и что лежит в MAP_X. Если координаты дробные (например, 37 вместо 40), проверьте округление. Если клонов слишком много, пересмотрите, где создаются лишние копии.

Двумерный мир «Майнкрафта» — только вершина айсберга. Освоив клоны, списки и события, вы сможете сделать игру практически любого жанра: платформер, аркаду, стратегию, головоломку. Полноценные 3д-игры делают в других средах — Roblox Studio, Godot, Unity, — но опытные пользователи могут создавать псевдо-3Д и внутри самого «Скретча» с помощью серьёзных математических расчётов.

Адреса поступления

ЦФО
Москва, Ленинградский пр., д. 80Г
Сокол
+7 495 800–10–01 8 800 100–00–11
banner
Подберите программу обучения, узнайте проходной балл и начните учиться бесплатно
image
slideImage1 из 6 вопросов
К каким профессиям вы более склонны?
ТехническиеТворческиеГуманитарныеМедицинские
slideImage2 из 6 вопросов
Какой у вас уровень образования?
Учусь, 1-8 классШкола, 9-11 классКолледжБакалавриатМагистратураДругое
slideImage3 из 6 вопросов
Какой формат обучения вам подходит?
ОчноЗаочноОнлайнПо выходнымПо вечерам
slideImage4 из 6 вопросов
Интересует ли вас бюджетное образование?
ДаНет
slideImage5 из 6 вопросов
Интересует ли вас кредит на образование по ставке 3% в год?
ДаНет
Осталось чуть-чуть
Мы подобрали вам программу обучения
Оставьте заявку, и мы откроем бесплатный доступ к вводной части обучения
Осталось чуть-чуть
Мы подобрали вам программу обучения

Заявка успешно отправлена!

Позвонить
formImg
Начните учиться бесплатно