Defold. Создание земли в 2D.

Defold. Создание земли в 2D.

Как создать землю в Defold Game Engine.

Мы начинаем серию уроков по созданию собственной 2D игры в игровом движке Defold Game Engine.  В этом уроке мы создадим ландшафт для нашей игры, по которому будет передвигаться персонаж.

Примечание. Данные уроки не являются собственностью нашего сайта, это перевод официальных уроков разработчиков defold.  Но все проверенно и протестировано лично!

Давайте начнем. Откроем редактор Defold и проект, который мы создавали на прошлом уроке.

Перейдем в папку main и загрузим сцену main, удалим со сцены стандартный логотип.

Далее нам потребуются дополнительные материалы в виде изображения земли. Их можно взять здесь (и другие изображения, которые будут использоваться в проекте). Переместим в папку images несколько изображений ground01 и ground02.

imajes

Создадим новый файл (правой кнопкой мыши по папке main New — Atlas file). Atlas — это файл, который содержит в себе набор отдельных изображений, что может влиять на экономию пространства и производительности проекта.

newatlas

Откроем наш атлас и в окне Outline добавим изображения, которые мы добавляли в папку images

imageatlas

imageatlas2

Добавим в папку main файл collection

groundcollection

И в окне Outline добавим  новый объектов Add — New game object и переименуем его в ground0, в строке ID окна Properties. Изменим размеры Scale на 0.6 по x и y

groundadd

К объекту добавим sprite Add component — Sprite

addsprite

В спрайте добавьте, в окне Properties, в строке image, наш атлас и в строке Default Animation выберете любое изображение. Измените позицию по оси x на 190.

Продублируйте наш ground0 еще 6 раз (CTRL + C CTRL +V, либо copy paste) и в каждом игровом объекте измените позицию, начиная с ground0  0, 228, 456, 684, 912, 1140 и 1368

Примерно должно получится вот так:

grounditog

Сохраните ground.collection и откройте main.collection, в окне Outline нажмите правой кнопкой мыши на Collection и выберете Add Collection From File и добавьте нашу Ground.collection

Проверьте, чтобы добавленная коллекция находилась в начале координат Position 0.0.0.

groundmain

mainposition

Незабываем сохранять все сцены File — Save.

Теперь можете запустить игру Project — Build and launch.

projectbuild

Следующий наш шаг, это создать скрипт, который заставит нашу землю двигаться справа — налево.

Добавим в папку main новый скрипт New — Script file и назовем его ground.script

groundscript

Удаляем все из скрипта и копируем туда такой код:

local pieces = { "ground0", "ground1", "ground2", "ground3",
"ground4", "ground5", "ground6" }

function init(self)
self.speed = 3
end
function update(self, dt)
for i, p in ipairs(pieces) do
local pos = go.get_position(p)
if pos.x <= -228 then
pos.x = 1368 + (pos.x + 228)
end
pos.x = pos.x - self.speed
go.set_position(pos, p)
end
end

Суть скрипта в том, что он сравнивает позиции наших блоков ground и двигает их, если у крайнего блока позиция станет меньше определенного значения. Скорость движения speed равно 3, при необходимости можно изменить это значение.

Сохраняем все эти действия и открываем ground.collection.

Добавляем еще один Game Object с id controller и добавим к нему компонент из файла Add component from file наш скрипт ground.script

scriptadd

Теперь при запуске наша земля будет двигаться.

groundtest

На этом создание земли закончено, в следующих уроках к настройке нашей поверхности мы еще вернемся, ну а далее наш ждет урок по созданию персонажа. Удачных проектов!

           На главную


Оставить Комментарий