Как создать 3D-игру в Scratch с нуля — туториал для детей

dd27bc4cec37d025176fddb39c79f4d4.png

В этом уроке мы научимся разрабатывать собственную 3Д-игру в Scratch — визуальной среде программирования для детей и начинающих разработчиков. Здесь создание скрипта происходит путем перетаскивания разноцветных блоков-команд. Яркая визуализация вовлекает детей в обучение и позволяет наглядно увидеть результаты работы — созданную игру или мультфильм.

Несмотря на то, что Scratch — это программа для создания 2Д-игр, мы можем реализовать в ней трехмерную игру, если будем соблюдать определенные правила, о них мы и расскажем в этом материале.

Урок подготовлен школой программирования для детей Pixel. Туториал предназначен для детей от 8–9 лет и старше.

e7d3928e883608ef16deac3d2daf2113.png

Перед стартом урока

В конце материала мы добавили видеоинструкцию на случай, если вам удобнее так воспринимать информацию.

Если вы еще ни разу не создавали проекты в Scratch и совсем не знакомы со средой, посмотрите серию обучающих уроков для новичков. Это поможет разобраться в основах, узнать, как устроен интерфейс и какие блоки существуют в программе. Однако если следовать видеоуроку, то начать можно и сразу с этого туториала.

Добавляем спрайты и объясняем, чем 2Д-игра отличается от 3Д-формата

Давайте разберемся в отличиях. Представьте себе книгу с картинками, изображения в ней плоские, как нарисованные на бумаге. Так же и в 2D играх: персонажи и предметы двигаются только вправо-влево, вверх-вниз, но не выходят за пределы экрана.

А теперь вообразите себе игрушечную машину. Вы можете обойти ее со всех сторон, посмотреть на нее сверху и снизу. То же самое происходит в 3D-играх: персонажи и предметы объемные, их можно увидеть с разных сторон. Движение происходит в трех измерениях: влево-вправо, вверх-вниз и вперед-назад.

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

Вы можете создать такие же, пользуясь нашим лайфхаком: для создания объемных объектов кубической формы добавим фон «Xy-grid-30 px» из библиотеки фонов. Теперь мы можем рисовать наш спрайт по клеткам, чтобы сохранить необходимый масштаб. Так мы поступим в случае с каждым спрайтом.

Теперь давайте добавим костюмы нашим полигонам. Нам нужно, чтобы у полигона было 4 костюма: пустого полигона, полигона с красной, желтой и зеленой точкой. Теперь мы можем воспользоваться функцией «дублирование» и создать много спрайтов полигонов. У одного из них сделаем только один костюм — синюю заливку. Это будет начальная платформа, где персонажу предстоит спавниться.

725d565d0c1238fea736cce42e9246df.png43bb5a133feccf09d3baf0d81b2f9d9f.png

Расположение спрайтов на сцене

Поскольку мы сделали много одинаковых полигонов, расположить их будет не так трудно, как может показаться на первый взгляд. Самое главное — уметь работать с координатами. Мы можем соединить два полигона и с помощью простых математических вычислений узнать меру нашего шага. Например: мы видим, что у данного полигона x= 10; y= -23;, а у соседнего — x=40; y=-23 . Мы просто вычтем из координат второго координаты первого полигона. С каждым полигоном мы будем прибавлять эту разницу в координатах и таким образом получим необходимую нам игровую платформу. 

Движение главного героя

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

Теперь давайте реализуем движение нашего персонажа. С помощью блоков события «когда клавиша нажата», мы устанавливаем клавиши управления движением: W — на движение вперед, S — на движение назад, D — на движение вправо, A — на движение влево.

Как вы могли заметить, движение вперед и назад создается с помощью сразу двух блоков движения. Мы меняем и x, и y.  Необходимое значение для изменения — это и есть наш шаг между полигоном выше и ниже. Для движения вправо и влево мы изменяем только разницу по x.

ccbb325e020a18c6c558e7041df5ce53.png

Давайте протестируем движение. Как мы видим, у нас получилось добиться 3Д-эффекта.

Создаем механику игры

Давайте перейдем к созданию механики игры. Добавим две переменные: «жизни» и «захвачено». 

Зададим начальное кол-во жизней (5) и начальное кол-во очков (0). 

91276005778c76556f6dd9e53250a243.png

Далее создадим условия выигрыша и проигрыша персонажа. Слайм выиграет, если наберет 8 очков, а проиграет, если жизни будут равны 0.

aa426627f27ac2e4a8c7d561c2460f5e.png

Если игрок касается красного цвета, у него отнимается 1 жизнь. Если касается желтого — плюс одно очко захвата. Зеленые ячейки костюмов помогут нам закрыть уровни. 

Разберем правила нашей игры. Есть три уровня: на 1 уровне слайм собирает только два очка захваченных ячеек (для сбора очка игрок должен наступить на желтый кружок), на 2 уровне игрок должен набрать 5 очков, а на 3 уровне — 8 очков. Переход уровней реализуется с помощью передачи сообщений (захват, захват1 и захват2).

355c539ffda3c532cd2068d0107b76fb.png

Приступим к написанию программ для наших полигонов. Зададим необходимый порядок смены костюмов. Обратите внимание на порядок костюмов во вкладке «костюмы». Первый костюм — обязательно с зеленым кружочком, второй — пустой. А третий и четвертый можете менять местами в зависимости от вашего желания.

c43e30e02246696e1202c2456f187bde.png

Обратите внимание на блок «когда я получу сообщение». Его мы будем использовать для перехода на другой уровень. 1 уровень — зеленый флажок, 2 уровень — захват, 3 уровень — захват1, конец — захват2.

Для создания антуража обязательно добавьте фон. Его можно выбрать из галереи или нарисовать собственный — главное, чтобы цвета не путали наши сенсоры. 

Давайте протестируем нашу игру. И пройдем два сценария — победу и проигрыш.

На этом наш урок подходит к концу.

Видео: 3D-игра на Scratch

Посмотрите ролик, чтобы увидеть, какой получилась игра.

***

Материал подготовлен детской IT-школой Pixel. Если хотите знать больше о создании игр с помощью Scratch, приходите к нам на курсы и мы вас всему научим.

© Habrahabr.ru