Сейчас я восстановлю структуру программы godot glow

Восстановим код и структуру примера годот туториала glow

Создадим проект в Godot и назовём его glow_for_2D_experiment.
Добавим в него узлы: Node2D, Sprite2D и ещё один Sprite2D.

Сохраним сцену как glow.tscn.

Поместим изображение океана в первый спрайт (Sprite2D), а изображение пещеры — во второй (Sprite2D2).

Добавим камеру (Camera2D), чтобы не смещать сами спрайты.

Добавим скрипт к узлу Node2D и назовём его glow.gd.
Напишем в нём следующий код.

extends Node2D

func _unhandled_input(event: InputEvent) -> void:
if(event is InputEventMouseMotion and event.button_mask>0):
$Sprite2D2.position.x=clampf($Sprite2D2.position.x+event.screen_relative.x,-1000,0)

Справка Godot для функции clampf
float clampf(value: float, min: float, max: float) — ограничивает значение value, возвращая число с плавающей точкой, которое не меньше min и не больше max.

В нашем случае так реализован «выход» из пещеры к океану.

Добавим узел WorldEnvironment и настроим его.
Для этого выделим WorldEnvironment и в инспекторе включим опцию Glow.

В настройках проекта назначим клавишу G для переключения эффекта свечения (glow).

Теперь внесём изменения в код скрипта glow.gd.

extends Node2D


const CAVE_LIMIT = 1000

var glow_map := preload("res://glow_map.webp")

@onready var cave: Node2D = $Cave


func _unhandled_input(input_event: InputEvent) -> void:
if input_event is InputEventMouseMotion and input_event.button_mask > 0:
cave.position.x = clampf(cave.position.x + input_event.screen_relative.x, -CAVE_LIMIT, 0)

if input_event.is_action_pressed(&"toggle_glow_map"):
if $WorldEnvironment.environment.glow_map:
$WorldEnvironment.environment.glow_map = null
$WorldEnvironment.environment.glow_intensity = 0.8
else:
$WorldEnvironment.environment.glow_map = glow_map
$WorldEnvironment.environment.glow_intensity = 1.6

 

При нажатии на клавишу G мы получим следующий эффект свечения.

Конец.

В этом туториале по Godot мы разобрали эффект свечения (glow) при выходе из пещеры, а также восстановили структуру и код примера. Спасибо за внимание.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх