Найти тему
Игровой движок Godot engine

№134. Снимок экрана. Get_viewport()

При необходимости мы можем сохранять в память или в файл содержимое нашего экрана целиком. Либо, при желании, какого то отдельного вьюпорта.

В нашем примере создадим эффект «ослепления». При нажатии будет появляться снимок экрана, и медленно угасать.

По умолчанию, в сцене у нас фон и частицы.

Для запоминания экрана нам надо добавить в сцену пустой Sprite.

В данном примере режим наложения установлен в Add.
Для получения характерного засвета.

Подключаем на него скрипт.

В скрипте ловим нажатие клавиши и прописываем код:
1) Запоминаем в переменную
screen содержимое экрана из глобального вьюпорта через get_viewport()
2) cоздаем ресурс ImageTexture
3) Помещаем содержимое screen в эту текстуру.

Ну и далее нам надо не забыть перевернуть изображение по вертикали и указать эту текстуру как источник для спрайта.

Для анимации угасания я прописал простенький код который вычитает из переменной некое значение , и подал его в прозрачность спрайта.

-2

В случае, когда вам необходимо сделать снимок с конкретного вьюпорта, то в пути просто замените get_viewport() на необходимый вам вьюпорт.
Переложим частицы внутрь отдельного вьюпорта:

-3
-4

Надеюсь вам был полезен этот материал.
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !

#godot #gdscript #программирование #игровой движок #уроки