VORONGO

VORONGO 

Давайте делать игры вместе!

8subscribers

41posts

goals1
$2.75 of $69 raised
Модерам на покушать

Скрипт смены для и ночи

extends Node
# Текущее время суток в часах и минутах
var current_hour : int = 6
var current_minute : int = 0
var hour_str : String
var minute_str : String
# Скорость прохождения времени (минуты в секунду)
var time_speed : float = 1.0
# Счётчик для отслеживания времени, когда произошло последнее обновление
var last_update_time : float = 0.0
func _ready():
# Запускаем таймер
$Timer.start()
func _process(delta):
# Проверяем, находится ли текущее состояние в состоянии PLAY
if StateMachine.current_state != StateMachine.States.PLAY:
return
# Обновляем текущее время суток в зависимости от прошедшего времени с учетом скорости
last_update_time += delta * time_speed
# Пока прошло достаточно времени для обновления (1 минута)
while last_update_time >= 1.0:
last_update_time -= 1.0
current_minute += 1
# Если минуты перевалили за 60, сбрасываем и увеличиваем часы
if current_minute >= 60:
current_minute = 0
current_hour += 1
# Если часы перевалили за 24, сбрасываем
if current_hour >= 24:
current_hour = 0
# Обновляем текстовое представление времени
update_time_text()
func update_time_text():
# Форматируем текущее время в строку "часы:минуты" с ведущими нулями
hour_str = str(current_hour).pad_zeros(2)
minute_str = str(current_minute).pad_zeros(2)
# Сигнал таймера для обновления времени
func _on_Timer_timeout():
# Вызываем _process с учетом дельты времени
_process(get_process_delta_time())
extends Node

# Ссылки на Environment и DirectionalLight3D
@export var world_environment : Environment
@export var DirectionalLight : DirectionalLight3D
# Цвета для разных времён суток
var color_day : Color = Color(1, 1, 1) # Белый
var color_night : Color = Color(0, 0, 0) # Черный
var color_dawn_dusk : Color = Color(1, 0.5, 0) # Оранжевый
# Переменные для плавного перехода цвета
var target_color : Color = color_day
var transition_duration : float = 5.0 # Время в секундах для плавного перехода
var transition_timer : float = 0.0
var start_color : Color = color_day
# Переменные для плавного изменения интенсивности света
var target_light_energy : float = 1.0
var start_light_energy : float = 1.0
func _ready():
# Создаем и запускаем таймер
var timer = Timer.new()
timer.set_wait_time(1.0)
timer.set_one_shot(false)
add_child(timer)
# Соединяем сигнал таймера с функцией _on_timer_timeout
timer.timeout.connect(_on_timer_timeout)
timer.start()
func _process(delta):
# Определяем целевой цвет и интенсивность света в зависимости от текущего времени
var current_hour = DayTime.current_hour
if current_hour >= 6 and current_hour < 18:
# Дневное время
target_color = color_day
target_light_energy = 0.5
elif (current_hour >= 0 and current_hour < 6) or (current_hour >= 18 and current_hour < 21):
# Рассвет или закат
target_color = color_dawn_dusk
target_light_energy = 0.2 # Половина интенсивности
else:
# Ночное время
target_color = color_night
target_light_energy = 0.005 # Низкая интенсивность
# Плавно меняем цвет фона и интенсивность света
if transition_timer < transition_duration:
transition_timer += delta
var lerp_value = transition_timer / transition_duration
# Линейная интерполяция между начальным и целевым цветом
$WorldEnvironment.environment.background_color = start_color.lerp(target_color, lerp_value)
# Линейная интерполяция между начальной и целевой интенсивностью света
$DirectionalLight3D.light_energy = lerp(start_light_energy, target_light_energy, lerp_value)
else:
# Устанавливаем целевой цвет и интенсивность света, когда переход завершен
$WorldEnvironment.environment.background_color = target_color
$DirectionalLight3D.light_energy = target_light_energy
# Обновляем начальные значения для следующего перехода
start_color = target_color
start_light_energy = target_light_energy
transition_timer = 0.0
func _on_timer_timeout():
# Вызываем _process с учетом дельты времени
_process(get_process_delta_time())

Оба скрипта глобальные
Воу, слишком много, мне нравится
Error_505, я уверен это можно сократить до 2 строк
Subscription levels5

🐤Спонсор Воробей🐤

$0.14 per month
🐤Спонсор Воробей🐤 - роль в нашем Discord сервере.
✅ Доступ к VIP чатам в нашем Discord.
✅ Ваше имя будет включено в титры следующего видео.
✅ Доступ к закрытым постам boosty
+ chat

🦆Спонсор Утка🦆

$0.35 per month
🦆Спонсор Утка🦆 - роль в нашем Discord сервере.
✅ Доступ к VIP чатам в нашем Discord.  
✅ Ваша тема для видео будет иметь больше приоритета.
✅ Ваше имя будет включено в титры следующего видео.
✅ Доступ к закрытым постам boosty
+ chat

🦜Спонсор Папуг🦜

$1.38 per month
🦜Спонсор Папуг🦜 - роль в нашем Discord сервере.
✅ Доступ к VIP чатам в нашем Discord.  
✅ Ваша тема для видео будет иметь больше приоритета.
✅ Ваше имя будет включено в титры следующего видео.
✅ Доступ к закрытым постам boosty
+ chat

🦢Спонсор Лебедь🦢

$4.2 per month
🦢Спонсор Лебедь🦢 - роль в нашем Discord сервере.
✅ Доступ к VIP чатам в нашем Discord.  
✅ Ваша тема для видео будет иметь больше приоритета.
✅ Ваше имя будет включено в титры следующего видео.
✅ Ваша роль выше 🔱Младший модератор🔱
✅ Доступ к закрытым постам boosty
+ chat

🦅Спонсор Орел🦅

$8.3 per month
🦅Спонсор Орел🦅 - роль в нашем Discord сервере.
✅ Доступ к VIP чатам в нашем Discord.
✅Ваша тема для видео будет иметь больше приоритета.
✅Ваше имя будет включено в титры следующего видео.
✅Ваша роль выше 🔱Младший модератор🔱
✅Вы можете использовать любые стикеры и реакции.
✅Доступ к закрытым постам boosty
+ chat
Go up