Из манула Screen и Viewport | Разделение между “физическим экраном” и “областью, в которой рисуется игра” мы можем сделать вывод:
“игровые объекты не расположены на экране, они существуют в игровом мире, который проецируется на экран камерой”.
Screen только отображает результат рендера, игровые объекты не могут быть “на экране”, так же, как человек не живёт в телевизоре.
Viewport — это окно отображения, а не место жизни объектов.
Игровые объекты не находятся в viewport, viewport — это куда камера их проецирует.
Объекты находятся в мировом пространстве, которое камера может или не может отображать на экран.
Что такое мировое пространство?
Мировое пространство (World Space) — это абстрактная, математическая система координат, в которой реально существуют все игровые объекты, независимо от экрана, камеры и устройства.
Мировое пространство — это:
- единая система координат игры
- общий “контейнер” для всех объектов
- пространство, которое не зависит от экрана
В таком случае:
- мир может быть больше экрана
- может быть бесконечным
- может быть меньше экрана
- камера — это просто “глаз”, смотрящий в мир
Получить и изменить позицию игрового объекта можно с помощью:
go.get_world_position()go.set_position()— задаёт локальную позицию объекта, которая совпадает с мировой, если у объекта нет родителя.
World Space — это сцена. Всё остальное — это то, что происходит с объектами на этой сцене.
Допустим, у нас есть игровой объект в коллекции:
Для того, чтобы узнать координаты игрового объекта в World Space, введём такй код:
function init(self)
print("World position (get_position): " .. go.get_position())
print("World position: (get_world_position)" .. go.get_world_position())
end
Запустим проект (ctrl + B) и увидим в консоли:
Как видно из отладки в консоли, позиции игрового объекта соответствуют позиции игрового объекта в редакторе Defold:
Вас может смутить, зачем для одного действия существует две команды.
В последующих учебных материалах вам станет мы об этом поговорим, а пока, я, надеюсь, вы запомнили ключевую мысль:
Мировое пространство — это математическая модель игрового мира, в которой живут объекты и работает логика, независимо от того, видит их игрок или нет.
Следующая тема:


