Как вы знаете, недавно я начал учиться программированию, и сейчас довольно хорошо разобрался.
И после предыдущего урока-знакомства с игровым движком Godot, я наконец научу вас делать игры, в которые можно поиграть!
* * *
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/448/4488252afd56ae30d3f080fffd78764d.webp)
Для начала заходим в наш любимый Godot. Как вы
Теперь надо как угодно назвать проект, и нажать "Создать".
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/b08/b08ff7c034d568298c9e94604849d0b7.webp)
Теперь мы создали проект, и так как мы создаём 2Д платформер, мы выбираем сделать 2д сцену.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/39f/39f1a30891ee553ee5ddaf3c88271189.webp)
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/b93/b93cce87ced5888d2a58960d3e5020d9.webp)
Теперь у нас есть 2д сцена, которая будет нашим уровнем. Давайте назовём наш корневой (т.е. главный) узел, например, "Уровень". Для этого в левой части экрана нажмите на название узла и напишите то что надо.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/741/74165c9685d8a805e2a71fe020ed1760.webp)
Теперь сохраним нашу сцену с уровнем. Найдите над сценой список сцен, там будет только наша сцена. Нажмите правой кнопкой мыши, и в выведеноом поле нажмите на "сохранить как", после - "сохранить"
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/a82/a82fae8e06401cdacb90eb7646a44726.webp)
Теперь создадим новую сцену. Это будет сцена игрока.
Нажмите плюсик справа от нашей сцены "уровень".
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/7a3/7a3b7d1a450f6895698d7b8954650359.webp)
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/331/331be7caf0a88e491ea71f8b105ecbed.webp)
Теперь добавим главный узел. Нажимаем на "+Другой узел". Теперь в поиске вводим "CharacterBody2D". Это и есть нужный для создания игрока узел.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/92e/92e4184f0ce1842abd1e9e0f730b9921.webp)
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/e73/e738b41ab68a0cae5cdbffb6c5a02314.webp)
Вот мы его и добавили! Но, как вы видите, на сцене ничего не поменялось. Это потому, что мы не загрузили картинку нашего игрока. Для картинок в игре используется узел "Sprite2D". Также есть узел "AnimatedSprite2D" для создания анимации, но сейчас он нам не нужен. Для начала возьмём просто картинку.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/067/067a2ddf6bb7dfb3aa2070e1c4dbd1dc.webp)
Теперь мы взяли узел Sprite2D, но он всё ещё пустой. Надо загрузить картинку. Для этого в правой части экрана нажимаем на "<пусто>" около надписи Texture. Так как мы не загружали в наш проект своих изображений, возьмём картинку, которая изначально есть в проекте - "icon.svg".
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/ddb/ddb9b90a589beefe53b36e5c643a5c78.webp)
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/0f0/0f0531238d258545e53dd794928c8779.webp)
И вот он, наш персонаж! Но и это не всё. Ему нужно придать форму. Для этого добавим CollisionShape2D.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/5d2/5d2860b8330e1f783fcbb3d997ad760b.webp)
Теперь нужно зажать форму. Это может быть круг, многоугольник, но мы выберем прямоугольник. Нажмите на <пусто> в правой части экрана и выберите RectangleShape2D.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/614/61438c99dc1cb929c70ae296a780adc7.webp)
Теперь у нас появился полупрозрачный голубой квадратик. Растяните и переместите его так, чтобы он покрывал всю картинку.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/e1c/e1c1891a89a844c46be3f7d3641aaa3b.webp)
Теперь у игрока есть форма! Осталось лишь сохранить сцену с нашим игроком, и дело за малым!
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/8dd/8dd71781c989ed719d3090b098bb2c4b.webp)
После сохранения переходим на сцену Уровня. Туда мы "перетаскиваем" игрока. Как?
Очень просто. В левой части, в Файловой системе у нас сохранилась сцена с игроком. Зажмите её, и перетащите на сцену уровня.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/b91/b91ea0199741a2903fe5fa4e441ccf49.webp)
Игрок на сцене! Теперь осталось сделать платформу. Место для поста уже кончается, так что сделаем простую невидимую платформу. Для этого добавляем к главному узлу дочерний - CollisionShape2D. Но на этот раз выбираем не квадрат, а прямую - WorldBoundaryShape2D.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/450/4501e6cff3ea8b2a380dcbed9facd53f.webp)
В углу сцены появилась прямая со стрелкой вверх. Переместите её ниже игрока, чтобы игрок приземлился на неё.
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/797/79700dbf7992ef204d12cf217681052b.webp)
Вроде бы всё хорошо! Но если вы внимательны, то могли бы заметить, что около узла в левой части экрана стоит восклицательный знак!
Видите ли, Форма может быть только у конкретного объекта. А мы поставили форму к уровню. Для таких случаев можно взять узел StaticBody2D.
Обязательно поставьте CollisionShape2D его дочерним узлом!
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/d77/d77032514c06bad49c128efdf7290f0b.webp)
Осталось лишь сделать код! Нажмите на корневой (верхний, главный) узел сцены. Теперь нажмите на значок, похожий на лист бумаги с зелёным плюсиком. В появившемся поле всё должно быть как на картинке ниже [1]!
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/3c4/3c4957cf02243a12c1e8278eba31cca5.webp)
![[1] [1]](/upload/test_stable/134/1346fc879660ae4d98a9f74af1fc3316.webp)
[1]
И тут.. Бац! Появился какой-то большущий код! Но не пугайтесь, Godot дал нам нужный скрипт(код) для игрока, и всё должно работать, если вы сделали всё правильно. Так что смело нажимаем на кнопку "играть"!
Нас спросят, сделать ли эту сцену главной? Отвечаем нет! И нажимаем "Выделить". Выбираем сцену "Уровень". Теперь можно играть!

Большой код. Ничего там не меняйте, пока не разберётесь в нём!
![Верстак поясняет за Godot! [Делаем платформер] - часть 1 Верстак поясняет за Godot! [Делаем платформер] - часть 1](/upload/test_stable/32c/32c6bb81a0fe72eb3d3d283676b45c81.webp)
Вот и всё! Ваша первая рабочая игра готова! Если вы нигде не ошиблись, то тогда ваш игрок будет бегать и прыгать по стрелкам и пробелу!
Если вам понравятся мои уроки, то я продолжу вас учить, и тогда на следующем уроке я вас научу строить карту из "блоков", добавлять монетки, платформы, и так далее!

Вот и наша игра. Для первого платформера очень неплохо!
Продолжать ли мне делать уроки?7
Поделиться:
Лучшиекомментарии (31)
sasha.go
Еле влезло в 50 блоков информации... Как вам?
Nazarep111
Ответ на Еле влезло в 50 блок... (sasha.go)
Делай продолжение
Nazarep111
Ответ на Делай продолжение... (Nazarep111)
Может попробую сделать
ShadowWisp
Ответ на Еле влезло в 50 блок... (sasha.go)
Интересно и информативно
sasha.go
Ответ на Интересно и информат... (ShadowWisp)
Спасибо
человек?
Программист хренов)
sasha.go
Ответ на Программист хренов)... (человек?)
Не, хрены я не программирую)
человек?
Ответ на Не, хрены я не прогр... (sasha.go)
Сделай игру, где ты типо комунист-скелет, и вы понимаете востание в южной симправии, а потом типо восток, запад, и типо симправия развалилась, и это концовка Горбачёва
sasha.go
Ответ на Сделай игру, где ты ... (человек?)
Не, я уже месяца 2 без понятия что в Симправии творится. Так что по ней игр от меня не будет) (и хорошо наверное))
человек?
Ответ на Не, я уже месяца 2 б... (sasha.go)
Тогда где типо ты комунист скелет, и становишься главой Гриболяндии
sasha.go
Ответ на Тогда где типо ты ко... (человек?)
Не, ты не понял. Я не буду делать игры вообще ни по каким виртуальным странам.
человек?
Ответ на Не, ты не понял. Я н... (sasha.go)
Не, Гриболяндия реальная, там типо будет нацсты и либералы. Так вот нацсты приходят к власти, а тебе надо будет через подполье спасти страну
sasha.go
Ответ на Не, Гриболяндия реал... (человек?)
Ладно, тогда я вообще не буду делать игры про страны. Хоят чего я говорь, ты всё равно найдёшь лазейку)))
человек?
Ответ на Ладно, тогда я вообщ... (sasha.go)
Тогда сделай, где ты комунист скелет шарик, прыгаешь по блокам, собираешь монетки, а потом за монетки, покупаешь должность призидента
Не Топлес
Ответ на Не, хрены я не прогр... (sasha.go)
Слабо, а я вот программную)))
Не Топлес
Godot конечно хорош, но он только для игр, тот же Удав или Си минус-минус универсальны)
Не Топлес
Ответ на Godot конечно хорош,... (Не Топлес)
А мой любимый язык(точнее то что выше них) — бинарный код! Программную только на нём. Есть ещё Ассемблер, но это для тех кто не достиг состояния шизомазохизма)))
RUSKIR
Ответ на А мой любимый язык(т... (Не Топлес)
А еще есть очень легкий и востребованный язык Malbolge! Обязательно попробуй его! Легко получится даже у новичка!
Не Топлес
Ответ на А еще есть очень лег... (RUSKIR)
Пробовал, как по мне фигня для идиотов. Я предпочитаю программировать с помощью палок и камней и из них собирать компьютеры с готовыми программами.
RUSKIR
Ответ на Пробовал, как по мне... (Не Топлес)
Так лучше вообще голубиной почтой программировать
Не Топлес
Ответ на Так лучше вообще гол... (RUSKIR)
Почта - это для тех у кого голуби и бумага есть, для буржуев. Настоящие пролетарии обходятся подручными средствами.
RUSKIR
Ответ на Почта - это для тех ... (Не Топлес)
Точно!
Рикардио
Надо сделать платформер, где ты типа грибок и ты прыгаешь на Супер Марио
ShadowWisp
Ответ на Надо сделать платфор... (Рикардио)
А называется сегарио
sasha.go
Ответ на Надо сделать платфор... (Рикардио)
Super Mario Bros: Revenge for all years
Nazarep111
Полезно
Mindeed
Ждать Pikuco: The Game?
sasha.go
Ответ на Ждать Pikuco: The Ga... (Mindeed)
Хехе, это было бы интересно
sasha.go
Ответ на Хехе, это было бы ин... (sasha.go)
Тогда уж "Pikuco: the Movie" тоже хотелось бы))
ShadowWisp
Ура второй урок
RUSKIR
Круто Надо будет попробовать GoDot А то на чистом коде такое хрен сделаешь)